Narzędzia
Tokeny designu z dowolnej strony jako zmienne CSS
Wpisz adres strony i pobierz jej tokeny designu jako custom properties CSS: kolory, style tekstu, odstępy, zaokrąglenia, cienie i szerokość treści, zmierzone na stronie tak, jak się renderuje.
Wypróbujstripe.comlinear.appairbnb.com
linear.app
Zmierzono 4 dni temu.
/* Design tokens extracted from https://linear.app/ (2026-10-28) */
:root {
--color-background: #08090a; /* Page background */
--color-surface: #101112; /* Cards, panels, raised or recessed surfaces */
--color-surface-2: #1c1d1e; /* Secondary surface */
--color-surface-3: #07220a; /* Secondary surface */
--color-foreground: #f7f8f8; /* Primary text */
--color-muted-foreground: #8a8f98; /* Secondary text, captions */
--color-primary: #e5e5e6; /* Candidate accent (semantic role inferred) */
--color-on-primary: #111111; /* Text on the accent */
--color-secondary: #5e6ad2; /* Secondary accent (violet) */
--color-border: #1c1d1e; /* Hairlines, dividers, input borders */
--font-sans: "Inter Variable", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
--font-display: "Inter Variable", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
--font-mono: "Berkeley Mono", ui-monospace, "SF Mono", Menlo, monospace;
/* observed; source h1 */
--text-headline-display: 510 64px/64px "Inter Variable", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
--font-family-headline-display: "Inter Variable", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
--font-weight-headline-display: 510;
--font-size-headline-display: 64px;
--line-height-headline-display: 64px;
--tracking-headline-display: -1.408px;
/* observed; source h2 */
--text-headline-lg: 510 48px/48px "Inter Variable", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
--font-family-headline-lg: "Inter Variable", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
--font-weight-headline-lg: 510;
--font-size-headline-lg: 48px;
--line-height-headline-lg: 48px;
--tracking-headline-lg: -1.056px;
/* observed; source h3 */
--text-headline-md: 510 13px/19.5px "Inter Variable", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
--font-family-headline-md: "Inter Variable", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
--font-weight-headline-md: 510;
--font-size-headline-md: 13px;
--line-height-headline-md: 19.5px;
--tracking-headline-md: -0.13px;
/* observed; source body */
--text-body-md: 400 24px/31.92px "Inter Variable", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
--font-family-body-md: "Inter Variable", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
--font-weight-body-md: 400;
--font-size-body-md: 24px;
--line-height-body-md: 31.92px;
--tracking-body-md: -0.288px;
/* observed; source label */
--text-label-md: 400 12px/1.17 "Inter Variable", "Inter", sans-serif;
--font-family-label-md: "Inter Variable", "Inter", sans-serif;
--font-weight-label-md: 400;
--font-size-label-md: 12px;
--line-height-label-md: 1.17;
--tracking-label-md: normal;
/* observed; source button */
--text-button: 400 15px/24px "Inter Variable", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
--font-family-button: "Inter Variable", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
--font-weight-button: 400;
--font-size-button: 15px;
--line-height-button: 24px;
--tracking-button: -0.165px;
/* observed; source code */
--text-code: 400 14px/24px "Berkeley Mono", ui-monospace, "SF Mono", Menlo, monospace;
--font-family-code: "Berkeley Mono", ui-monospace, "SF Mono", Menlo, monospace;
--font-weight-code: 400;
--font-size-code: 14px;
--line-height-code: 24px;
--tracking-code: normal;
--space-unit: 4px;
--space-1: 4px;
--space-2: 8px;
--space-3: 12px;
--space-4: 16px;
--space-5: 20px;
--space-6: 24px;
--space-7: 28px;
--space-8: 32px;
--space-9: 36px;
--space-10: 48px;
--radius-none: 0px;
--radius-full: 9999px;
--radius-lg: 12px;
--radius-sm: 4px;
--radius-button: 9999px;
--radius-input: 0px;
--radius-card: 12px;
--shadow-1: rgba(0, 0, 0, 0.2) 0px 0px 0px 1px;
--shadow-2: rgba(0, 0, 0, 0.2) 0px 0px 12px 0px inset;
--shadow-3: rgba(0, 0, 0, 0.25) 0px 2px 32px 0px;
--shadow-4: rgba(255, 255, 255, 0.05) 0px 0px 0px 1px inset;
--content-width: 1344px;
}
/* Load fonts.css first. Apply a complete role class, including non-shorthand font settings. */
.sp-type-headline-display {
font: var(--text-headline-display);
letter-spacing: var(--tracking-headline-display);
font-style: normal;
font-stretch: 100%;
font-variation-settings: normal;
font-feature-settings: "cv01", "ss03";
font-optical-sizing: auto;
font-synthesis: weight style small-caps;
}
.sp-type-headline-lg {
font: var(--text-headline-lg);
letter-spacing: var(--tracking-headline-lg);
font-style: normal;
font-stretch: 100%;
font-variation-settings: normal;
font-feature-settings: "cv01", "ss03";
font-optical-sizing: auto;
font-synthesis: weight style small-caps;
}
.sp-type-headline-md {
font: var(--text-headline-md);
letter-spacing: var(--tracking-headline-md);
font-style: normal;
font-stretch: 100%;
font-variation-settings: normal;
font-feature-settings: "cv01", "ss03";
font-optical-sizing: auto;
font-synthesis: weight style small-caps;
}
.sp-type-body-md {
font: var(--text-body-md);
letter-spacing: var(--tracking-body-md);
font-style: normal;
font-stretch: 100%;
font-variation-settings: normal;
font-feature-settings: "cv01", "ss03";
font-optical-sizing: auto;
font-synthesis: weight style small-caps;
}
.sp-type-label-md {
font: var(--text-label-md);
letter-spacing: var(--tracking-label-md);
font-style: normal;
font-stretch: normal;
font-variation-settings: normal;
font-feature-settings: normal;
font-optical-sizing: auto;
font-synthesis: none;
}
.sp-type-button {
font: var(--text-button);
letter-spacing: var(--tracking-button);
font-style: normal;
font-stretch: 100%;
font-variation-settings: normal;
font-feature-settings: normal;
font-optical-sizing: auto;
font-synthesis: weight style small-caps;
}
.sp-type-code {
font: var(--text-code);
letter-spacing: var(--tracking-code);
font-style: normal;
font-stretch: 100%;
font-variation-settings: normal;
font-feature-settings: normal;
font-optical-sizing: auto;
font-synthesis: weight style small-caps;
}Jak to działa
Stylepack otwiera stronę w prawdziwej przeglądarce, mierzy to, co się renderuje (a nie to, co mówi arkusz stylów) w czterech szerokościach i w obu motywach, a wynik zapisuje jako pakiet designu. Strona już zmierzona odpowiada od razu; nowa zajmuje mniej niż minutę. Każda wartość na tej stronie pochodzi z tego pakietu.
Pytania
Czym jest token designu?
Nazwana wartość designu (kolor, rozmiar czcionki, krok odstępu) używana w całym produkcie. Jako zmienne CSS tokeny pozwalają przestylować całą stronę, zmieniając jedną deklarację.
Skąd biorą się nazwy?
Z roli, jaką każda wartość pełni na zmierzonej stronie: --color-primary to akcent, --text-headline-lg styl nagłówka, --space-4 krok odstępu. tokens.json w pakiecie zawiera te same nazwy w formacie W3C.
Czy to cały design system?
To wartości. Pakiet designu dodaje zachowanie (hover, focus, menu, animacje, responsywność, tryb ciemny), przepisy na komponenty i zrzuty ekranu, w formie, z której budują agenty AI do kodowania.