CodeBlock — بلوک کد
بلوک کد TDS سه کار را با هم انجام میدهد: زبان را میشناسد (از برچسب fence یا از خود کد)، هر توکن را به نقش معنایی (کلیدواژه، رشته، عدد، تابع…) میبرد، و رنگ هر نقش را از توکنهای تم میگیرد. نتیجه: یک کد در هر تم با همان ساختار، اما با رنگبندی هویت همان تم دیده میشود، بیآنکه یک هگز در کامپوننت باشد.
وضعیت: beta · لایه: ۳ (کپی کد) + موتور زبان کپی کد (بدون UI) · توکنها: کپی کد
import { CodeBlock } from '@tokapps/tuk';نمونهٔ زنده در شش تم
هر نمونه با کپی کد و کپی کد خودش رنگ میگیرد؛ کد یکسان است، هویت متفاوت.
// نمونهٔ یکسان برای همهٔ تمها — کامنت فارسی هم جهت خودش را حفظ میکندexport const launch = (idea: Idea) => { const score: number = idea.votes * 2; return score > 10 ? "پرطرفدار" : 'در انتظار';};// نمونهٔ یکسان برای همهٔ تمها — کامنت فارسی هم جهت خودش را حفظ میکندexport const launch = (idea: Idea) => { const score: number = idea.votes * 2; return score > 10 ? "پرطرفدار" : 'در انتظار';};// نمونهٔ یکسان برای همهٔ تمها — کامنت فارسی هم جهت خودش را حفظ میکندexport const launch = (idea: Idea) => { const score: number = idea.votes * 2; return score > 10 ? "پرطرفدار" : 'در انتظار';};// نمونهٔ یکسان برای همهٔ تمها — کامنت فارسی هم جهت خودش را حفظ میکندexport const launch = (idea: Idea) => { const score: number = idea.votes * 2; return score > 10 ? "پرطرفدار" : 'در انتظار';};// نمونهٔ یکسان برای همهٔ تمها — کامنت فارسی هم جهت خودش را حفظ میکندexport const launch = (idea: Idea) => { const score: number = idea.votes * 2; return score > 10 ? "پرطرفدار" : 'در انتظار';};// نمونهٔ یکسان برای همهٔ تمها — کامنت فارسی هم جهت خودش را حفظ میکندexport const launch = (idea: Idea) => { const score: number = idea.votes * 2; return score > 10 ? "پرطرفدار" : 'در انتظار';};// نمونهٔ یکسان برای همهٔ تمها — کامنت فارسی هم جهت خودش را حفظ میکندexport const launch = (idea: Idea) => { const score: number = idea.votes * 2; return score > 10 ? "پرطرفدار" : 'در انتظار';};// نمونهٔ یکسان برای همهٔ تمها — کامنت فارسی هم جهت خودش را حفظ میکندexport const launch = (idea: Idea) => { const score: number = idea.votes * 2; return score > 10 ? "پرطرفدار" : 'در انتظار';};// نمونهٔ یکسان برای همهٔ تمها — کامنت فارسی هم جهت خودش را حفظ میکندexport const launch = (idea: Idea) => { const score: number = idea.votes * 2; return score > 10 ? "پرطرفدار" : 'در انتظار';};// نمونهٔ یکسان برای همهٔ تمها — کامنت فارسی هم جهت خودش را حفظ میکندexport const launch = (idea: Idea) => { const score: number = idea.votes * 2; return score > 10 ? "پرطرفدار" : 'در انتظار';};// نمونهٔ یکسان برای همهٔ تمها — کامنت فارسی هم جهت خودش را حفظ میکندexport const launch = (idea: Idea) => { const score: number = idea.votes * 2; return score > 10 ? "پرطرفدار" : 'در انتظار';};// نمونهٔ یکسان برای همهٔ تمها — کامنت فارسی هم جهت خودش را حفظ میکندexport const launch = (idea: Idea) => { const score: number = idea.votes * 2; return score > 10 ? "پرطرفدار" : 'در انتظار';};قاب حرفهای: تراشه، شماره خط و پاورقی
قاب بلوک کد سه بخش دارد. سرِ کد تراشهٔ زبان و نام فایل را نشان میدهد و دکمهٔ کپی را کنار آن دارد. بدنه شماره خط را با جداکنندهٔ نازک نشان میدهد و خطهای برجسته را علامت میزند. پاورقی (کپی کد) نوار اختیاری کمارتفاع زیر کد است، برای اطلاعات کمکی مثل تعداد خط یا کدگذاری. سایه، لبهٔ سرِ کد، تراشه و نوار اسکرول فقط از توکنهای کپی کد میآیند؛ هر تم فقط حرکت تأیید کپی و رنگ خودش را تعیین میکند.
export const sum = (a: number, b: number) => a + b;export const avg = (a: number, b: number) => sum(a, b) / 2;export const sum = (a: number, b: number) => a + b;export const avg = (a: number, b: number) => sum(a, b) / 2;کد نمونه (قابل کپی)
import { CodeBlock } from '@tokapps/tuk';<CodeBlock code={'export const sum = (a: number, b: number) => a + b;\nexport const avg = (a: number, b: number) => sum(a, b) / 2;'} languageId="typescript" language="TypeScript" title="math.ts" lineNumbers highlight={[2]} footer="۲ خط · UTF-8"/>| پراپ | نوع | توضیح |
|---|---|---|
| کپی کد | کپی کد | برچسب زبان؛ بهصورت تراشه در سرِ کد نشان داده میشود |
| کپی کد | کپی کد | نام فایل؛ با قلم کد نشان داده میشود. بدون آن و بدون زبان، برچسب «code» میآید |
| کپی کد | کپی کد | پاورقی اختیاری؛ نبودنش یعنی بدون نوار پایین |
| کپی کد | کپی کد | شماره خط با جداکنندهٔ نازک |
کد درونخطی (کپی کد)
کد کوتاه وسط جمله، مثل کپی کد یا نام کامپوننت کپی کد، با کپی کد ساده نمیماند: یک کلیک آن را کپی میکند و لازم نیست متن را دستی انتخاب کنید. این رفتار در همهٔ بخشهای سایت برقرار است؛ در پاراگراف، تیتر، جدول و فهرست فرقی ندارد.
- با ماوس روی تراشه کلیک کنید، یا با کپی کد فوکوس کنید و کپی کد یا کپی کد بزنید.
- با hover یا فوکوس کیبورد، برچسب «کپی کد» ظاهر میشود. پس از کپی، تراشه رنگ تأیید میگیرد و برچسب «کپی شد» نشان داده میشود.
- شکل، رنگ و حرکت هر تم را توکنها و فایل کپی کد همان تم تعیین میکنند؛ رفتار کپی در همه ثابت است.
حالتها
| حالت | ظاهر | توضیح |
|---|---|---|
| پیشفرض | تراشهٔ خنثی با متن کد | کلیک یا لمس کل تراشه کپی میکند |
| hover | پسزمینهٔ هاور و برچسب «کپی کد» | نشانهٔ کلیکپذیری |
| فوکوس کیبورد | حلقهٔ کپی کد و برچسب | با کپی کد قابل پیمایش است |
| کپیشده | انیمیشن کوتاه دور تراشه، رنگ تأیید، برچسب «کپی شد» و اعلام برای صفحهخوان | حدود ۱٫۴ ثانیه میماند و برمیگردد |
| لحن برند | تراشه با رنگ accent | برای نام کامپوننت یا توکن که باید بیشتر دیده شود |
| کپی متنی متفاوت | نمایش کوتاه، کپی کامل | برای دستوری که متن کوتاهشده را نشان میدهد |
| کلمهٔ بلند | شکستن امن در مرز مجاز | مسیر یا URL بدون سرریز از خط بیرون نمیزند |
| چاپ | فقط متن کد، بدون تراشه و برچسب | کاغذ همان متن کد را دارد |
پیکربندی
| پراپ | نوع | پیشفرض | توضیح |
|---|---|---|---|
| کپی کد | کپی کد | — | متن کد؛ کپی پیشفرض همین متن است |
| کپی کد | کپی کد کپی کد | کپی کد | لحن تراشه |
| کپی کد | کپی کد | — | متن کپیشونده، وقتی با نمایش فرق دارد |
| کپی کد | کپی کد | کپی کد | برچسب کمکی روی hover و فوکوس |
| کپی کد | کپی کد | کپی کد | برچسب پس از کپی |
| کپی کد | کپی کد | — | کلاس ریشه برای جانمایی |
نمونههای زنده و کد هر حالت
هر حالت یک پیشنمایش زنده و یک بلوک کد قابلکپی دارد. کد از همان شیء نمونهٔ پیشنمایش ساخته میشود.
برای نصب از کپی کد استفاده کنید.
import { InlineCode } from '@tokapps/tuk';<InlineCode>pnpm add @tokapps/tuk</InlineCode>کامپوننت کپی کد از بسته TUK است.
import { InlineCode } from '@tokapps/tuk';<InlineCode tone="brand">InlineCode</InlineCode>دستور کپی کد را اجرا کنید.
import { InlineCode } from '@tokapps/tuk';<InlineCode copyText="pnpm install">pnpm i</InlineCode>مسیر کامل: کپی کد را ببینید.
import { InlineCode } from '@tokapps/tuk';<InlineCode>packages/tuk/src/data-display/inline-code/InlineCode.tsx</InlineCode>مقدار کپی کد تعیین میکند کدام کلید دیده شود.
import { InlineCode } from '@tokapps/tuk';<InlineCode tone="brand">dock.slots</InlineCode>در شش تم
هر تم روشن و تیره. کد هر تم همان دو کپی کد با کپی کد و کپی کد است.
کپی کد
کپی کد
import { InlineCode } from '@tokapps/tuk';<div data-theme="tokapps" data-mode="light"> <InlineCode>pnpm add @tokapps/tuk</InlineCode></div><div data-theme="tokapps" data-mode="dark"> <InlineCode>pnpm add @tokapps/tuk</InlineCode></div>کپی کد
کپی کد
import { InlineCode } from '@tokapps/tuk';<div data-theme="ideation" data-mode="light"> <InlineCode>pnpm add @tokapps/tuk</InlineCode></div><div data-theme="ideation" data-mode="dark"> <InlineCode>pnpm add @tokapps/tuk</InlineCode></div>کپی کد
کپی کد
import { InlineCode } from '@tokapps/tuk';<div data-theme="funding" data-mode="light"> <InlineCode>pnpm add @tokapps/tuk</InlineCode></div><div data-theme="funding" data-mode="dark"> <InlineCode>pnpm add @tokapps/tuk</InlineCode></div>کپی کد
کپی کد
import { InlineCode } from '@tokapps/tuk';<div data-theme="product-hunt" data-mode="light"> <InlineCode>pnpm add @tokapps/tuk</InlineCode></div><div data-theme="product-hunt" data-mode="dark"> <InlineCode>pnpm add @tokapps/tuk</InlineCode></div>کپی کد
کپی کد
import { InlineCode } from '@tokapps/tuk';<div data-theme="stories" data-mode="light"> <InlineCode>pnpm add @tokapps/tuk</InlineCode></div><div data-theme="stories" data-mode="dark"> <InlineCode>pnpm add @tokapps/tuk</InlineCode></div>کپی کد
کپی کد
import { InlineCode } from '@tokapps/tuk';<div data-theme="enterprise" data-mode="light"> <InlineCode>pnpm add @tokapps/tuk</InlineCode></div><div data-theme="enterprise" data-mode="dark"> <InlineCode>pnpm add @tokapps/tuk</InlineCode></div>کد نمونهٔ استفاده
import { InlineCode } from '@tokapps/tuk';<p> برای نصب از <InlineCode copyText="pnpm add @tokapps/tuk">pnpm add</InlineCode> استفاده کنید.</p>قواعد استفاده
- برای کد چندخطی یا شمارهدار از کپی کد استفاده کنید؛ کپی کد فقط برای یک عبارت کوتاه وسط متن است.
- تراشه خودش دکمه است؛ آن را داخل دکمه یا لینک قرار ندهید.
- در MDX، هر کد درونخطی (کپی کد) بهصورت خودکار کپی کد میشود؛ نیازی به نوشتن دستی نیست.
پکیجهای استفادهشده
| پکیج | نقش | چرا این انتخاب |
|---|---|---|
| کپی کد (v4.5، MIT) | گرامر و مرز توکن | گرامرهای TextMate واقعی هر زبان؛ هر توکن scope دقیق دارد (کپی کد، کپی کد…) و برای حدس نقش به قاعدههای سطحی تکیه نمیکنیم. موتور regex جاوااسکریپت است (بدون WASM) و هر زبان فقط وقتی لازم شود بارگذاری میشود. |
| کپی کد | قلم کدنویسی | محلی و بدون درخواست به Google Fonts؛ لیگاچر کپی کد دارد که فقط برای زبانهای برنامهنویسی روشن است. |
| کپی کد (محلی) | فالبک فارسی | حروف فارسی داخل کد (کامنت، رشته) از Vazir میآیند؛ کپی کد فقط بلوکهای عربی/فارسی را میگیرد. |
| کپی کد | موتور | شناخت زبان، تبدیل scope به نقش، و خروجی توکنها. هیچ رنگی تولید نمیکند. |
بررسیشده و کنار گذاشته: کپی کد (حدس زبان خوب، ولی گرامرهای regex دقت کمتری دارند و همزمان حدس و رنگبندی را قاطی میکند)؛ کپی کد (گرامر TextMate ندارد، رنگبندی سطحی)؛ خود Shiki با تمهای رنگی (رنگ را داخل HTML مینشاند و با قانون «رنگ فقط از توکن» سازگار نیست؛ ما رنگ را به CSS و تم میسپاریم).
جریان داده
برچسب fence (ts، bash…) → normalizeLanguage ─┐ ├→ highlightCode (Shiki + scope) → نقش هر توکنبدون برچسب → detectLanguage (حدس از محتوا) ─┘ ▼TUK CodeBlock → <span data-kind="keyword"> → color: var(--tds-syntax-keyword) → هویت تمدر MDX این جریان خودکار است: هر بلوک fence روی سرور هایلایت میشود (بدون پرش رنگ). در صفحات کلاینتی کپی کد از کپی کد بعد از hydrate رنگ میگیرد.
شناخت زبان برنامهنویسی
۱. از برچسب fence. اگر نویسنده زبان را نوشته باشد، همان مرجع است. مستعارها به زبان استاندارد میروند:
| برچسب | زبان | خانوادهٔ قلم |
|---|---|---|
| کپی کد, کپی کد | TypeScript | code |
| کپی کد | TSX | code |
| کپی کد, کپی کد, کپی کد | JavaScript | code |
| کپی کد | JSX | code |
| کپی کد, کپی کد | JSON | data |
| کپی کد | CSS | markup |
| کپی کد | HTML | markup |
| کپی کد, کپی کد, کپی کد, کپی کد, کپی کد | Shell | shell |
| کپی کد, کپی کد | Python | code |
| کپی کد | PHP | code |
| کپی کد | SQL | code |
| کپی کد, کپی کد | Go | code |
| کپی کد, کپی کد | Rust | code |
| کپی کد, کپی کد | YAML | data |
| کپی کد, کپی کد | Diff | diff |
| کپی کد, کپی کد, کپی کد | Markdown | markup |
۲. بدون برچسب: حدس از محتوا. کپی کد قطعی و بدون مدل است: اول اگر کل متن JSON معتبر باشد، JSON است. بعد نشانههای هر زبان (مثلاً کپی کد و کپی کد برای Python، کپی کد و کپی کد برای Rust، کپی کد و کپی کد برای TypeScript، کپی کد برای JSX، کپی کد برای Shell) امتیاز میگیرند. زبانی که امتیازش به ۳ برسد انتخاب میشود؛ وگرنه متن ساده. ترجیح ما بدون رنگ بودن در حدس مشکوک است؛ رنگ اشتباه از بیرنگی بدتر است.
مهندسی قلم و جهت
| موضوع | قاعده | چرا |
|---|---|---|
| لیگاچر | فقط خانوادهٔ کپی کد و کپی کد (CSS) روشن است؛ کپی کد، کپی کد، کپی کد خاموش | کپی کد کپی کد کپی کد در JSON و YAML نباید به هم بچسبند |
| فالبک فارسی | پشتهٔ قلم: JetBrains Mono → Vazir → monospace | حروف فارسی در کد از Vazir میآیند بدون اینکه ارقام و نماد لاتین تغییر کنند |
| جهت حروف فارسی | کپی کد و کپی کد | ترکیب متن فارسی و لاتین داخل یک خط جهت را به هم نمیریزد |
| کامنت | لاتین مورب؛ فارسی بدون کج | کجکردن حروف فارسی خوانایی را کم میکند |
| ارتفاع خط | کپی کد | کامنتها و متن فارسی نفس بکشند |
| شماره خط | عددهای جدولی (کپی کد) و راستچین | ستون شماره خط همیشه تراز است |
| جهت کل بلوک | همیشه کپی کد | کد هرگز آینه نمیشود |
توکنهای رنگ سینتکس
هر نقش یک توکن کپی کد دارد. مقدارها از فام (hue) و کروما میآیند؛ روشنایی (L) بهتفکیک روشن/تیره است تا کنتراست AA تضمین شود.
| نقش | مصرف | فام (متغیر) |
|---|---|---|
| کپی کد | کپی کد، کپی کد، کپی کد | کپی کد |
| کپی کد | رشتهها و قالبها | کپی کد |
| کپی کد، کپی کد | عدد، کپی کد، کپی کد | کپی کد |
| کپی کد، کپی کد | نام تابع، کلید شیء | کپی کد |
| کپی کد، کپی کد، کپی کد | نوع، کلاس، ویژگی | کپی کد |
| کپی کد، کپی کد | تگ HTML، کپی کد | کپی کد |
| کپی کد، کپی کد، کپی کد | کامنت و نشانهها | خاکستری (فام کپی کد) |
| کپی کد، کپی کد | متن عادی | کپی کد |
| کپی کد، کپی کد، کپی کد، کپی کد | regex، diff، خطا | کپی کد از فامهای danger و success |
کپی کد هر ۲۰ نقش را در هر تم × روشن/تیره × کنتراست عادی/بالا روی سطح کد به AA میسنجد؛ تم جدیدی که کنتراست را بشکند، نمیتواند منتشر شود.
طرح رنگ بلوک (روشن یا تیره، مستقل از صفحه)
بلوک کد طرح رنگ خودش را دارد و این انتخاب با تم است: هر تم در فرادادهاش کپی کد (کپی کد یا کپی کد) دارد. بلوک با کپی کد همان را میگیرد، پس یک صفحهٔ روشن میتواند بلوک تیرهٔ تم «tokapps» داشته باشد و برعکس. بدون کپی کد، بلوک از حالت صفحه پیروی میکند.
import { CodeBlock } from '@tokapps/tuk';import { meta } from '@tokapps/theme-tokapps/meta';<CodeBlock code={source} language="TypeScript" scheme={meta.codeScheme} />مقدارهای هر طرح صریحاند (کپی کد روی بلوک) و به سطح صفحه وابسته نیستند؛ کپی کد هر دو طرح را در هر تم به AA میسنجد.
شخصیسازی در هر تم
هر تم فقط شش فام و یک کروما را تعیین میکند (فایل کپی کد). ساختار و قلم ثابتاند.
| تم | کلیدواژه | رشته | عدد | تابع | نوع | تگ | کروما |
|---|---|---|---|---|---|---|---|
| tokapps | 330 | 160 | 75 | 240 | 190 | 20 | 0.12 |
| ideation | 20 | 155 | 85 | 292 | 230 | 355 | 0.13 |
| funding | 265 | 185 | 80 | 230 | 300 | 30 | 0.11 |
| product-hunt | 290 | 165 | 95 | 245 | 205 | 10 | 0.13 |
| stories | 300 | 150 | 60 | 240 | 190 | 340 | 0.10 |
| enterprise | 255 | 160 | 75 | 205 | 185 | 20 | 0.08 |
تم سفارشی برای برند خودتان:
/* تم جدید: فقط توکن؛ بدون دستزدن به کامپوننت */[data-theme="my-brand"] { --tds-code-chroma: 0.14; --tds-code-hue-keyword: 310; --tds-code-hue-string: 140; --tds-code-hue-number: 70; --tds-code-hue-function: 230; --tds-code-hue-type: 200; --tds-code-hue-tag: 15;}بازنویسی یک نقش بهتنهایی (مثلاً رشتهها باید دقیقاً این رنگ باشند):
[data-theme="my-brand"] { --tds-syntax-string: oklch(0.45 0.12 150);}[data-theme="my-brand"][data-mode="dark"] { --tds-syntax-string: oklch(0.82 0.12 150);}قاعدهٔ کار: هر بازنویسی باید با کپی کد سبز بماند؛ اگر کنتراست پایین بیاید، اسکریپت نقش و نسبت را گزارش میکند.
استفاده
در MDX: هیچ کاری لازم نیست؛ هر بلوک fence با برچسب زبان (مثلاً کپی کد) خودکار هایلایت و قابلکپی است.
در React (با رشتهٔ کد):
import { highlightCode } from '@tokapps/code';import { CodeBlock } from '@tokapps/tuk';export async function Snippet({ source }: { source: string }) { const { language, lines } = await highlightCode(source, 'tsx'); return ( <CodeBlock code={source} lines={lines} languageId={language?.id} language={language?.label} family={language?.family} ligatures={language?.ligatures} title="Card.tsx" lineNumbers highlight={[3]} /> );}بدون هایلایت (فقط متن و کپی): کپی کد — سینتکس ندارد و همان ساختار را دارد.
دسترسپذیری، چاپ و حالتهای سیستم
- کپی کد با کپی کد و کپی کد «کد TypeScript» (یا «بلوک کد») قابل پیمایش با صفحهکلید است؛ حلقهٔ فوکوس حذف نمیشود.
- دکمهٔ کپی برچسبش را به «کپی شد» تغییر میدهد و یک ناحیهٔ کپی کد همان پیام را اعلام میکند.
- رنگ تنها نشانه نیست: خط برجسته لبهٔ ضخیم دارد و diff با کپی کد/کپی کد مشخص است.
- کپی کد: رنگ سینتکس به کپی کد برمیگردد.
- بدون انیمیشن؛ کپی بدون جابهجایی است.
- چاپ: دکمهٔ کپی پنهان و کد با کپی کد چاپ میشود.
قرارداد توکن و فراداده
- بنیان بدون رنگ خام: کپی کد فقط کپی کد مصرف میکند (تست کپی کد این را میسنجد).
- فراداده: کپی کد (برای MCP و مستندات).
- شش تم هر کدام یک فایل کپی کد دارند و در کپی کد ثبت شدهاند.
تغییرات مجاز برای توسعهدهنده
- خانوادهٔ قلم (کپی کد): کپی کد (پیشفرض)، کپی کد، کپی کد، کپی کد، کپی کد.
- لیگاچر (کپی کد): پیشفرض بر اساس خانواده است (کپی کد و کپی کد روشن). میتوان دستی تنظیمش کرد.
- طرح رنگ (کپی کد): کپی کد یا کپی کد. نبود آن یعنی پیروی از حالت صفحه. تمها با کپی کد پیشفرض میدهند.
- خطهای توکنشده (کپی کد): خروجی کپی کد یا هر منبعی با ساختار کپی کد.
- شماره خط و برجسته: کپی کد و کپی کد (شماره از ۱).
- عنوان و زبان: کپی کد، کپی کد، کپی کد.
- متنها: کپی کد و کپی کد برای ترجمه.
- کلاس ریشه: کپی کد روی کپی کد، برای فاصلهگذاری (نه رنگ).
- توکن سطح کامپوننت: کپی کد برای بنیان و کپی کد همراه شش فام هویت (کپی کد) و کروما.
تغییرات ممنوع (بنیان ثابت)
- ساختار DOM: کپی کد با کپی کد، سپس کپی کد با کپی کد و کپی کد، سپس کپی کد و خطها. تبدیل کپی کد به کپی کد بدون کپی کد ممنوع است.
- کپی: حذف دکمهٔ کپی یا کپی کردن چیزی غیر از کپی کد.
- ناحیهٔ اعلام کپی: حذف کپی کد یا کپی کد روی کپی کد.
- جهت: تغییر کپی کد روی کپی کد.
- رنگ: رنگ خام، هگز یا گرادیان در CSS بنیان. تست کپی کد این را میشکند.
- فوکوس: حذف حلقهٔ فوکوس روی کپی کد یا دکمه.
- هایلایت: هایلایت بدون لبهٔ ضخیم، چون رنگ تنها نشانه نیست.
- دسترسپذیری سیستم: حذف قاعدهٔ کپی کد و قاعدهٔ چاپ.
صدا، حرکت، چاپ و کاهش حرکت
- صدا: کامپوننت بیصدا است و پراپ صدا در کد تعریف نشده است. معادل بصری کپی، تغییر برچسب و اعلام کپی کد است.
- حرکت: بلوک انیمیشن ندارد و بنابراین کاهش حرکت برای آن لازم نیست. بازگشت برچسب دکمه پس از حدود ۱٫۴ ثانیه بدون انیمیشن است.
- چاپ: دکمهٔ کپی پنهان است، کپی کد با کپی کد چاپ میشود و بلوک کپی کد دارد.
قرارداد ARCH
- آیکونهای کپی و تأیید فقط با کپی کد و نام معنایی کپی کد و کپی کد (داخل Button) نمایش داده میشوند؛ مسیر فایل آیکون وجود ندارد.
- بنیان بدون رنگ خام است. هویت سینتکس فقط از کپی کد و فامهای کپی کد میآید.
- تم فقط توکنها را عوض میکند؛ DOM و رفتار ثابتاند.
- این کامپوننت gesture ندارد. معادل کیبوردی آن کپی کد به کپی کد و دکمهٔ کپی، و کپی کد یا کپی کد برای کپی است.
محدودیتها و گام بعد
- ۱۶ زبان فعلی؛ افزودن زبان یعنی یک مدخل در کپی کد، کپی کد، کپی کد و کپی کد (تشخیص).
- حدس زبان بر پایهٔ نشانههای ساده است؛ برای کدهای خیلی کوتاه (کمتر از یک خط معنادار) ممکن است متن ساده برگردد.
- هایلایت خطهای کپی کد و کپی کد فقط برای زبان کپی کد رنگی است.
- دکمهٔ «جمعکردن» و «نمایش کامل» برای بلوکهای بلند در فاز بعد است.