@transcodes/design-tokens 0.3.5 → 0.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,23 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.3.6] - 2025-12-17
9
+
10
+ ### Added
11
+
12
+ - 다크모드 토큰 대폭 확장 (21→58개): alpha, accent, semantic, error 토큰 추가
13
+ - Utopia 스타일 fluid 토큰: `space-xs-sm`, `space-sm-md`, `space-md-lg`, `space-lg-xl` pair 토큰
14
+ - 새 사이즈 토큰: `size-icon-action`, `size-screen-icon-fluid`, `size-decoration-blob`
15
+ - 애니메이션 오프셋 토큰: `offset-slide-up-sm`, `offset-slide-up-md`
16
+ - 모달 토큰: `modal-max-width-sm/md/lg/fluid`, `modal-min-height`
17
+ - Focus ring 토큰: `shadow-focus-ring-width`
18
+ - Alpha 색상 확장: `alpha-onAccent`, `alpha-onAccentMuted`, `alpha-black15/30/90`
19
+
20
+ ### Fixed
21
+
22
+ - 다크모드 대비 문제 수정: accent 배경 텍스트, showcase 페이지
23
+ - shadow colors 다크모드 오버라이드 불필요 항목 제거
24
+
8
25
  ## [0.3.5] - 2025-12-11
9
26
 
10
27
  ### Changed
@@ -1 +1 @@
1
- @keyframes fadeInUp{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-.25rem)}75%{transform:translate(.25rem)}}@keyframes inkFloat{0%,to{opacity:.5;transform:translate(0)scale(1)}50%{opacity:.7;transform:translate(.625rem,-.625rem)scale(1.1)}}@keyframes inkDrift{0%,to{opacity:.4;transform:translate(0)rotate(0)}33%{opacity:.6;transform:translate(-.5rem,.5rem)rotate(-5deg)}66%{opacity:.5;transform:translate(.375rem,-.375rem)rotate(3deg)}}@keyframes inkSpread{0%{opacity:.4;transform:scale(0)}to{transform:scale(var(--ink-effect-spread-scale,2.5));opacity:0}}.page-container{width:100%;max-width:var(--page-container-max-width);padding:0 var(--page-container-padding);animation:fadeInUp .6s var(--transition-smooth)both;margin:0 auto;position:relative}.page-container--wide{max-width:var(--page-container-max-width-wide)}.page-card{background:var(--paper-white);padding:var(--page-card-padding);border-radius:var(--page-card-radius);box-shadow:var(--shadow-card);position:relative;overflow:hidden}.page-card:before{content:"";border-radius:inherit;padding:var(--space-fixed-2xs);background:linear-gradient(135deg,var(--alpha-primary08)0%,transparent 50%,var(--alpha-primary04)100%);-webkit-mask-composite:xor;pointer-events:none;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}.page-card--centered{text-align:center}.page-decoration{filter:blur(3.75rem);pointer-events:none;z-index:0;border-radius:50%;position:absolute}.page-decoration--primary{background:var(--alpha-primary15)}.page-decoration--success{background:var(--alpha-success15)}.page-decoration--float{animation:4s ease-in-out infinite inkFloat}.page-decoration--drift{animation:5s ease-in-out infinite inkDrift}.button{height:var(--button-height);padding:0 var(--space-lg);font-family:var(--font-body);font-size:var(--button-font-size);font-weight:var(--button-font-weight);letter-spacing:var(--button-letter-spacing);border:var(--space-fixed-2xs)solid transparent;border-radius:var(--button-radius);cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast)}.button-primary{background:var(--accent-primary);color:var(--paper-white)}.button-primary:hover:not(:disabled){background:var(--accent-primary-hover);box-shadow:var(--shadow-button-hover-primary);transform:translateY(calc(-1*var(--space-fixed-2xs)))}.button-success{background:var(--accent-success);color:var(--paper-white)}.button-success:hover:not(:disabled){background:var(--accent-success-hover);box-shadow:var(--shadow-button-hover-success);transform:translateY(calc(-1*var(--space-fixed-2xs)))}.button-secondary{height:var(--button-height-secondary);color:var(--ink-dark);border:var(--space-fixed-2xs)solid var(--ink-faint);background:0 0}.button-secondary:hover:not(:disabled){color:var(--accent-primary);border-color:var(--accent-primary);background:var(--alpha-primary04)}.button:disabled{cursor:not-allowed;opacity:.7}.text-button{height:var(--button-text-height);padding:var(--space-sm)var(--space-md);font-family:var(--font-body);font-size:var(--button-text-font-size);color:var(--ink-dark);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-weight:500;display:inline-flex}.text-button:hover{background:var(--paper-cream);color:var(--accent-primary)}.text-button-sm{height:auto;padding:var(--space-xs)var(--space-sm);font-size:.8125rem}.text-button-md{height:auto;padding:var(--space-sm)var(--space-md)}.button-content{justify-content:center;align-items:center;gap:var(--button-content-gap);display:flex}.button-icon{flex-shrink:0;justify-content:center;align-items:center;display:flex}.button-text{text-align:center;flex:1}.button-spinner{width:var(--button-spinner-size);height:var(--button-spinner-size);border:var(--button-spinner-border-width)solid currentColor;border-top-color:#0000;border-radius:50%;animation:.6s linear infinite spin}.button-ink{position:relative;overflow:hidden}.button-ink:after{content:"";pointer-events:none;width:21.875rem;height:21.875rem;transition:transform var(--ink-effect-ripple-duration,.6s)var(--ink-effect-ripple-easing,cubic-bezier(.4,0,.2,1)),opacity var(--ink-effect-fade-duration,.3s)ease;opacity:0;background:radial-gradient(circle,#ffffff80 0%,#0000 70%);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0)}.button-ink:hover:after{opacity:1;transform:translate(-50%,-50%)scale(1)}.button-ink:active:after{opacity:.8;transform:translate(-50%,-50%)scale(.8)}.card{background:var(--paper-white);padding:var(--card-padding);border-radius:var(--card-radius);box-shadow:var(--shadow-card);position:relative;overflow:hidden}.container{width:100%;max-width:var(--container-max-width);position:relative}.container-wide{max-width:var(--container-max-width-wide)}.form-header{text-align:center;margin-bottom:var(--form-header-margin-bottom)}.form-title{font-family:var(--font-body);font-size:var(--title-font-size);font-weight:var(--title-font-weight);color:var(--ink-black);letter-spacing:var(--title-letter-spacing);animation:slideDown .4s var(--transition-smooth).2s both}.form-subtitle{font-size:var(--form-subtitle-font-size);color:var(--ink-medium);margin-top:var(--space-sm);animation:fadeInUp .4s var(--transition-smooth).4s both}.form-fields{gap:var(--form-fields-gap);flex-direction:column;display:flex}.form-footer{margin-top:var(--form-footer-margin-top);text-align:center;animation:fadeInUp .4s var(--transition-smooth).6s both}.field-group{gap:var(--field-group-gap);flex-direction:column;display:flex}.field-label{font-size:var(--label-font-size);font-weight:var(--label-font-weight);text-transform:uppercase;letter-spacing:var(--label-letter-spacing);color:var(--ink-medium);transition:color var(--transition-fast);display:block}.field-group.focused .field-label{color:var(--accent-primary)}.required-mark{color:var(--accent-primary);margin-left:var(--space-2xs)}.input{width:100%;padding:var(--input-padding-y)var(--input-padding-x);font-family:var(--font-body);font-size:var(--input-font-size);color:var(--ink-black);background:var(--paper-cream);border:var(--space-fixed-2xs)solid transparent;border-radius:var(--input-radius);transition:background var(--transition-smooth),border-color var(--transition-smooth),box-shadow var(--transition-smooth)}.input::placeholder{color:var(--ink-faint)}.input:hover{background:var(--paper-warm)}.input:focus{background:var(--paper-white);border-color:var(--ink-faint);box-shadow:var(--shadow-input-focus);outline:none}.label{font-size:var(--label-font-size);font-weight:var(--label-font-weight);text-transform:uppercase;letter-spacing:var(--label-letter-spacing);color:var(--ink-medium);margin-bottom:var(--space-sm);transition:color var(--transition-fast);display:block}.title{font-family:var(--font-body);font-size:var(--title-font-size);font-weight:var(--title-font-weight);color:var(--ink-black);letter-spacing:var(--title-letter-spacing)}.error-message{align-items:flex-start;gap:var(--feedback-error-gap);padding:var(--feedback-error-padding);background:var(--error-bg);border:var(--space-fixed-2xs)solid var(--error-border);border-radius:var(--feedback-error-radius);color:var(--error-base);animation:slideDown .3s var(--transition-smooth)both;display:flex}.error-icon{width:var(--feedback-error-icon-size);height:var(--feedback-error-icon-size);color:var(--error-base);flex-shrink:0;justify-content:center;align-items:center;display:flex}.error-message.shake{animation:shake .4s var(--transition-smooth)}.notice{align-items:flex-start;gap:var(--feedback-notice-gap);padding:var(--feedback-notice-padding);border-radius:var(--feedback-notice-radius);animation:slideUp .4s var(--transition-smooth)both;display:flex}.notice-icon{width:var(--feedback-notice-icon-size);height:var(--feedback-notice-icon-size);flex-shrink:0;justify-content:center;align-items:center;display:flex}.notice-success{border:var(--space-fixed-2xs)solid #357a4633;color:var(--accent-success);background:#357a4614}.notice-warning{border:var(--space-fixed-2xs)solid #b4530933;color:var(--semantic-warning);background:#b4530914}.notice-info{border:var(--space-fixed-2xs)solid #0369a133;color:var(--semantic-info);background:#0369a114}
1
+ *,:before,:after{box-sizing:border-box;margin:0;padding:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}@keyframes fadeInUp{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-.25rem)}75%{transform:translate(.25rem)}}@keyframes inkFloat{0%,to{opacity:.5;transform:translate(0)scale(1)}50%{opacity:.7;transform:translate(.625rem,-.625rem)scale(1.1)}}@keyframes inkDrift{0%,to{opacity:.4;transform:translate(0)rotate(0)}33%{opacity:.6;transform:translate(-.5rem,.5rem)rotate(-5deg)}66%{opacity:.5;transform:translate(.375rem,-.375rem)rotate(3deg)}}@keyframes inkSpread{0%{opacity:.4;transform:scale(0)}to{transform:scale(var(--ink-effect-spread-scale,2.5));opacity:0}}.page-container{width:100%;max-width:var(--page-container-max-width);padding:0 var(--page-container-padding);animation:fadeInUp .6s var(--transition-smooth)both;margin:0 auto;position:relative}.page-container--wide{max-width:var(--page-container-max-width-wide)}.page-card{background:var(--paper-white);padding:var(--page-card-padding);border-radius:var(--page-card-radius);box-shadow:var(--shadow-card);position:relative;overflow:hidden}.page-card:before{content:"";border-radius:inherit;padding:var(--space-fixed-2xs);background:linear-gradient(135deg,var(--alpha-primary08)0%,transparent 50%,var(--alpha-primary04)100%);-webkit-mask-composite:xor;pointer-events:none;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}.page-card--centered{text-align:center}.page-decoration{filter:blur(3.75rem);pointer-events:none;z-index:0;border-radius:50%;position:absolute}.page-decoration--primary{background:var(--alpha-primary15)}.page-decoration--success{background:var(--alpha-success15)}.page-decoration--float{animation:4s ease-in-out infinite inkFloat}.page-decoration--drift{animation:5s ease-in-out infinite inkDrift}.button{height:var(--button-height);padding:0 var(--space-lg);font-family:var(--font-body);font-size:var(--button-font-size);font-weight:var(--button-font-weight);letter-spacing:var(--button-letter-spacing);border:var(--space-fixed-2xs)solid transparent;border-radius:var(--button-radius);cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast)}.button-primary{background:var(--accent-primary);color:var(--paper-white)}.button-primary:hover:not(:disabled){background:var(--accent-primary-hover);box-shadow:var(--shadow-button-hover-primary);transform:translateY(calc(-1*var(--space-fixed-2xs)))}.button-success{background:var(--accent-success);color:var(--paper-white)}.button-success:hover:not(:disabled){background:var(--accent-success-hover);box-shadow:var(--shadow-button-hover-success);transform:translateY(calc(-1*var(--space-fixed-2xs)))}.button-secondary{height:var(--button-height-secondary);color:var(--ink-dark);border:var(--space-fixed-2xs)solid var(--ink-faint);background:0 0}.button-secondary:hover:not(:disabled){color:var(--accent-primary);border-color:var(--accent-primary);background:var(--alpha-primary04)}.button:disabled{cursor:not-allowed;opacity:.7}.text-button{height:var(--button-text-height);padding:var(--space-sm)var(--space-md);font-family:var(--font-body);font-size:var(--button-text-font-size);color:var(--ink-dark);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-weight:500;display:inline-flex}.text-button:hover{background:var(--paper-cream);color:var(--accent-primary)}.text-button-sm{height:auto;padding:var(--space-xs)var(--space-sm);font-size:.8125rem}.text-button-md{height:auto;padding:var(--space-sm)var(--space-md)}.button-content{justify-content:center;align-items:center;gap:var(--button-content-gap);display:flex}.button-icon{flex-shrink:0;justify-content:center;align-items:center;display:flex}.button-text{text-align:center;flex:1}.button-spinner{width:var(--button-spinner-size);height:var(--button-spinner-size);border:var(--button-spinner-border-width)solid currentColor;border-top-color:#0000;border-radius:50%;animation:.6s linear infinite spin}.button-ink{position:relative;overflow:hidden}.button-ink:after{content:"";pointer-events:none;width:21.875rem;height:21.875rem;transition:transform var(--ink-effect-ripple-duration,.6s)var(--ink-effect-ripple-easing,cubic-bezier(.4,0,.2,1)),opacity var(--ink-effect-fade-duration,.3s)ease;opacity:0;background:radial-gradient(circle,#ffffff80 0%,#0000 70%);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0)}.button-ink:hover:after{opacity:1;transform:translate(-50%,-50%)scale(1)}.button-ink:active:after{opacity:.8;transform:translate(-50%,-50%)scale(.8)}.card{background:var(--paper-white);padding:var(--card-padding);border-radius:var(--card-radius);box-shadow:var(--shadow-card);position:relative;overflow:hidden}.container{width:100%;max-width:var(--container-max-width);position:relative}.container-wide{max-width:var(--container-max-width-wide)}.form-header{text-align:center;margin-bottom:var(--form-header-margin-bottom)}.form-title{font-family:var(--font-body);font-size:var(--title-font-size);font-weight:var(--title-font-weight);color:var(--ink-black);letter-spacing:var(--title-letter-spacing);animation:slideDown .4s var(--transition-smooth).2s both}.form-subtitle{font-size:var(--form-subtitle-font-size);color:var(--ink-medium);margin-top:var(--space-sm);animation:fadeInUp .4s var(--transition-smooth).4s both}.form-fields{gap:var(--form-fields-gap);flex-direction:column;display:flex}.form-footer{margin-top:var(--form-footer-margin-top);text-align:center;animation:fadeInUp .4s var(--transition-smooth).6s both}.field-group{gap:var(--field-group-gap);flex-direction:column;display:flex}.field-label{font-size:var(--label-font-size);font-weight:var(--label-font-weight);text-transform:uppercase;letter-spacing:var(--label-letter-spacing);color:var(--ink-medium);transition:color var(--transition-fast);display:block}.field-group.focused .field-label{color:var(--accent-primary)}.required-mark{color:var(--accent-primary);margin-left:var(--space-2xs)}.input{width:100%;padding:var(--input-padding-y)var(--input-padding-x);font-family:var(--font-body);font-size:var(--input-font-size);color:var(--ink-black);background:var(--paper-cream);border:var(--space-fixed-2xs)solid transparent;border-radius:var(--input-radius);transition:background var(--transition-smooth),border-color var(--transition-smooth),box-shadow var(--transition-smooth)}.input::placeholder{color:var(--ink-faint)}.input:hover{background:var(--paper-warm)}.input:focus{background:var(--paper-white);border-color:var(--ink-faint);box-shadow:var(--shadow-input-focus);outline:none}.label{font-size:var(--label-font-size);font-weight:var(--label-font-weight);text-transform:uppercase;letter-spacing:var(--label-letter-spacing);color:var(--ink-medium);margin-bottom:var(--space-sm);transition:color var(--transition-fast);display:block}.title{font-family:var(--font-body);font-size:var(--title-font-size);font-weight:var(--title-font-weight);color:var(--ink-black);letter-spacing:var(--title-letter-spacing)}.error-message{align-items:flex-start;gap:var(--feedback-error-gap);padding:var(--feedback-error-padding);background:var(--error-bg);border:var(--space-fixed-2xs)solid var(--error-border);border-radius:var(--feedback-error-radius);color:var(--error-base);animation:slideDown .3s var(--transition-smooth)both;display:flex}.error-icon{width:var(--feedback-error-icon-size);height:var(--feedback-error-icon-size);color:var(--error-base);flex-shrink:0;justify-content:center;align-items:center;display:flex}.error-message.shake{animation:shake .4s var(--transition-smooth)}.notice{align-items:flex-start;gap:var(--feedback-notice-gap);padding:var(--feedback-notice-padding);border-radius:var(--feedback-notice-radius);animation:slideUp .4s var(--transition-smooth)both;display:flex}.notice-icon{width:var(--feedback-notice-icon-size);height:var(--feedback-notice-icon-size);flex-shrink:0;justify-content:center;align-items:center;display:flex}.notice-success{border:var(--space-fixed-2xs)solid #357a4633;color:var(--accent-success);background:#357a4614}.notice-warning{border:var(--space-fixed-2xs)solid #b4530933;color:var(--semantic-warning);background:#b4530914}.notice-info{border:var(--space-fixed-2xs)solid #0369a133;color:var(--semantic-info);background:#0369a114}
@@ -7,6 +7,29 @@ export const componentStyles = `/**
7
7
  * Do not edit directly, this file was auto-generated.
8
8
  */
9
9
 
10
+ /* Minimal Reset for Shadow DOM */
11
+ *,
12
+ *::before,
13
+ *::after {
14
+ box-sizing: border-box;
15
+ margin: 0;
16
+ padding: 0;
17
+ }
18
+
19
+ button,
20
+ input,
21
+ select,
22
+ textarea {
23
+ font: inherit;
24
+ color: inherit;
25
+ }
26
+
27
+ button {
28
+ cursor: pointer;
29
+ background: none;
30
+ border: none;
31
+ }
32
+
10
33
  /* Animations */
11
34
  @keyframes fadeInUp {
12
35
  0% {
package/build/index.d.ts CHANGED
@@ -6,6 +6,8 @@
6
6
  * Design tokens object type
7
7
  */
8
8
  export interface Tokens {
9
+ offsetSlideUpSm: string;
10
+ offsetSlideUpMd: string;
9
11
  durationInstant: string;
10
12
  durationFast: string;
11
13
  durationSmooth: string;
@@ -60,6 +62,11 @@ export interface Tokens {
60
62
  alphaWhite15: string;
61
63
  alphaWhite30: string;
62
64
  alphaWhite90: string;
65
+ alphaBlack15: string;
66
+ alphaBlack30: string;
67
+ alphaBlack90: string;
68
+ alphaOnAccent: string;
69
+ alphaOnAccentMuted: string;
63
70
  errorBase: string;
64
71
  errorBg: string;
65
72
  errorBorder: string;
@@ -132,6 +139,11 @@ export interface Tokens {
132
139
  formFieldsGap: string;
133
140
  formFooterMarginTop: string;
134
141
  fieldGroupGap: string;
142
+ modalMaxWidthSm: string;
143
+ modalMaxWidthMd: string;
144
+ modalMaxWidthLg: string;
145
+ modalMaxWidthFluid: string;
146
+ modalMinHeight: string;
135
147
  pageContainerMaxWidth: string;
136
148
  pageContainerMaxWidthWide: string;
137
149
  pageContainerPadding: string;
@@ -149,6 +161,7 @@ export interface Tokens {
149
161
  shadowOverlay: string;
150
162
  shadowModal: string;
151
163
  shadowOtpCellFocus: string;
164
+ shadowFocusRingWidth: string;
152
165
  breakpointSm: string;
153
166
  breakpointMd: string;
154
167
  breakpointLg: string;
@@ -160,14 +173,23 @@ export interface Tokens {
160
173
  zIndexModal: string;
161
174
  zIndexPopover: string;
162
175
  zIndexTooltip: string;
176
+ sizeIconXs: string;
163
177
  sizeIconSm: string;
164
178
  sizeIconMd: string;
165
179
  sizeIconLg: string;
166
180
  sizeIconXl: string;
181
+ sizeIcon2xl: string;
182
+ sizeIconAction: string;
167
183
  sizeSpinnerSm: string;
168
184
  sizeSpinnerMd: string;
169
185
  sizeSpinnerLg: string;
186
+ sizeSpinnerXl: string;
170
187
  sizeSpinnerButton: string;
188
+ sizeScreenIconSm: string;
189
+ sizeScreenIconMd: string;
190
+ sizeScreenIconFluid: string;
191
+ sizeDecorationBlob: string;
192
+ sizeProgressBarWidth: string;
171
193
  sizeBorderWidthThin: string;
172
194
  sizeBorderWidthBase: string;
173
195
  sizeBorderWidthThick: string;
@@ -186,6 +208,10 @@ export interface Tokens {
186
208
  spaceLg: string;
187
209
  spaceXl: string;
188
210
  space2xl: string;
211
+ spaceXsSm: string;
212
+ spaceSmMd: string;
213
+ spaceMdLg: string;
214
+ spaceLgXl: string;
189
215
  fontBody: string;
190
216
  fontSizeSm: string;
191
217
  fontSizeBase: string;
package/build/index.js CHANGED
@@ -15,6 +15,8 @@ import './tokens-dark.css';
15
15
  * console.log(tokens.accentPrimary); // '#6b4fd9'
16
16
  */
17
17
  export const tokens = {
18
+ offsetSlideUpSm: "0.25rem",
19
+ offsetSlideUpMd: "0.625rem",
18
20
  durationInstant: "150ms",
19
21
  durationFast: "300ms",
20
22
  durationSmooth: "400ms",
@@ -69,6 +71,11 @@ export const tokens = {
69
71
  alphaWhite15: "#ffffff26",
70
72
  alphaWhite30: "#ffffff4d",
71
73
  alphaWhite90: "#ffffffe6",
74
+ alphaBlack15: "#00000026",
75
+ alphaBlack30: "#0000004d",
76
+ alphaBlack90: "#000000e6",
77
+ alphaOnAccent: "#fffffff2",
78
+ alphaOnAccentMuted: "#ffffff99",
72
79
  errorBase: "#c0392b",
73
80
  errorBg: "#e74c3c14",
74
81
  errorBorder: "#e74c3c33",
@@ -141,6 +148,11 @@ export const tokens = {
141
148
  formFieldsGap: "clamp(1.25rem, 1.03rem + 1.09vw, 2rem)",
142
149
  formFooterMarginTop: "clamp(1.25rem, 1.03rem + 1.09vw, 2rem)",
143
150
  fieldGroupGap: "clamp(0.5rem, 0.46rem + 0.22vw, 0.625rem)",
151
+ modalMaxWidthSm: "320px",
152
+ modalMaxWidthMd: "400px",
153
+ modalMaxWidthLg: "600px",
154
+ modalMaxWidthFluid: "clamp(280px, 85vw, 320px)",
155
+ modalMinHeight: "400px",
144
156
  pageContainerMaxWidth: "25rem",
145
157
  pageContainerMaxWidthWide: "26.25rem",
146
158
  pageContainerPadding: "clamp(1.25rem, 1.03rem + 1.09vw, 2rem)",
@@ -158,6 +170,7 @@ export const tokens = {
158
170
  shadowOverlay: "0 0.25rem 0.5rem rgba(0, 0, 0, 0.1)",
159
171
  shadowModal: "0 1.5rem 3rem rgba(0, 0, 0, 0.15)",
160
172
  shadowOtpCellFocus: "0 0 0 0.25rem rgba(124, 92, 255, 0.1)",
173
+ shadowFocusRingWidth: "0.1875rem",
161
174
  breakpointSm: "640px",
162
175
  breakpointMd: "768px",
163
176
  breakpointLg: "1024px",
@@ -169,14 +182,23 @@ export const tokens = {
169
182
  zIndexModal: "1050",
170
183
  zIndexPopover: "1060",
171
184
  zIndexTooltip: "1070",
185
+ sizeIconXs: "0.75rem",
172
186
  sizeIconSm: "1rem",
173
187
  sizeIconMd: "1.5rem",
174
188
  sizeIconLg: "2rem",
175
189
  sizeIconXl: "2.5rem",
190
+ sizeIcon2xl: "3rem",
191
+ sizeIconAction: "1.25rem",
176
192
  sizeSpinnerSm: "1rem",
177
193
  sizeSpinnerMd: "2rem",
178
194
  sizeSpinnerLg: "4rem",
195
+ sizeSpinnerXl: "5rem",
179
196
  sizeSpinnerButton: "1.125rem",
197
+ sizeScreenIconSm: "4rem",
198
+ sizeScreenIconMd: "5rem",
199
+ sizeScreenIconFluid: "clamp(3rem, 2.43rem + 2.86vw, 5rem)",
200
+ sizeDecorationBlob: "clamp(12rem, 9.43rem + 12.86vw, 22rem)",
201
+ sizeProgressBarWidth: "12rem",
180
202
  sizeBorderWidthThin: "0.0625rem",
181
203
  sizeBorderWidthBase: "0.09375rem",
182
204
  sizeBorderWidthThick: "0.125rem",
@@ -195,6 +217,10 @@ export const tokens = {
195
217
  spaceLg: "clamp(1.25rem, 1.03rem + 1.09vw, 2rem)",
196
218
  spaceXl: "clamp(1.5rem, 1.15rem + 1.74vw, 2.75rem)",
197
219
  space2xl: "clamp(2rem, 1.35rem + 3.26vw, 4.5rem)",
220
+ spaceXsSm: "clamp(0.25rem, 0.14rem + 0.54vw, 0.625rem)",
221
+ spaceSmMd: "clamp(0.5rem, 0.28rem + 1.09vw, 1.25rem)",
222
+ spaceMdLg: "clamp(0.875rem, 0.42rem + 2.28vw, 2rem)",
223
+ spaceLgXl: "clamp(1.25rem, 0.47rem + 3.91vw, 2.75rem)",
198
224
  fontBody: "\"DM Sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif",
199
225
  fontSizeSm: "clamp(0.8125rem, 0.78rem + 0.16vw, 0.9375rem)",
200
226
  fontSizeBase: "clamp(0.875rem, 0.83rem + 0.22vw, 1rem)",
@@ -213,6 +239,8 @@ export const tokens = {
213
239
  * console.log(cssVars['--accent-primary']); // '#6b4fd9'
214
240
  */
215
241
  export const cssVars = {
242
+ '--offset-slide-up-sm': "0.25rem",
243
+ '--offset-slide-up-md': "0.625rem",
216
244
  '--duration-instant': "150ms",
217
245
  '--duration-fast': "300ms",
218
246
  '--duration-smooth': "400ms",
@@ -267,6 +295,11 @@ export const cssVars = {
267
295
  '--alpha-white15': "#ffffff26",
268
296
  '--alpha-white30': "#ffffff4d",
269
297
  '--alpha-white90': "#ffffffe6",
298
+ '--alpha-black15': "#00000026",
299
+ '--alpha-black30': "#0000004d",
300
+ '--alpha-black90': "#000000e6",
301
+ '--alpha-on-accent': "#fffffff2",
302
+ '--alpha-on-accent-muted': "#ffffff99",
270
303
  '--error-base': "#c0392b",
271
304
  '--error-bg': "#e74c3c14",
272
305
  '--error-border': "#e74c3c33",
@@ -339,6 +372,11 @@ export const cssVars = {
339
372
  '--form-fields-gap': "clamp(1.25rem, 1.03rem + 1.09vw, 2rem)",
340
373
  '--form-footer-margin-top': "clamp(1.25rem, 1.03rem + 1.09vw, 2rem)",
341
374
  '--field-group-gap': "clamp(0.5rem, 0.46rem + 0.22vw, 0.625rem)",
375
+ '--modal-max-width-sm': "320px",
376
+ '--modal-max-width-md': "400px",
377
+ '--modal-max-width-lg': "600px",
378
+ '--modal-max-width-fluid': "clamp(280px, 85vw, 320px)",
379
+ '--modal-min-height': "400px",
342
380
  '--page-container-max-width': "25rem",
343
381
  '--page-container-max-width-wide': "26.25rem",
344
382
  '--page-container-padding': "clamp(1.25rem, 1.03rem + 1.09vw, 2rem)",
@@ -356,6 +394,7 @@ export const cssVars = {
356
394
  '--shadow-overlay': "0 0.25rem 0.5rem rgba(0, 0, 0, 0.1)",
357
395
  '--shadow-modal': "0 1.5rem 3rem rgba(0, 0, 0, 0.15)",
358
396
  '--shadow-otp-cell-focus': "0 0 0 0.25rem rgba(124, 92, 255, 0.1)",
397
+ '--shadow-focus-ring-width': "0.1875rem",
359
398
  '--breakpoint-sm': "640px",
360
399
  '--breakpoint-md': "768px",
361
400
  '--breakpoint-lg': "1024px",
@@ -367,14 +406,23 @@ export const cssVars = {
367
406
  '--z-index-modal': "1050",
368
407
  '--z-index-popover': "1060",
369
408
  '--z-index-tooltip': "1070",
409
+ '--size-icon-xs': "0.75rem",
370
410
  '--size-icon-sm': "1rem",
371
411
  '--size-icon-md': "1.5rem",
372
412
  '--size-icon-lg': "2rem",
373
413
  '--size-icon-xl': "2.5rem",
414
+ '--size-icon2xl': "3rem",
415
+ '--size-icon-action': "1.25rem",
374
416
  '--size-spinner-sm': "1rem",
375
417
  '--size-spinner-md': "2rem",
376
418
  '--size-spinner-lg': "4rem",
419
+ '--size-spinner-xl': "5rem",
377
420
  '--size-spinner-button': "1.125rem",
421
+ '--size-screen-icon-sm': "4rem",
422
+ '--size-screen-icon-md': "5rem",
423
+ '--size-screen-icon-fluid': "clamp(3rem, 2.43rem + 2.86vw, 5rem)",
424
+ '--size-decoration-blob': "clamp(12rem, 9.43rem + 12.86vw, 22rem)",
425
+ '--size-progress-bar-width': "12rem",
378
426
  '--size-border-width-thin': "0.0625rem",
379
427
  '--size-border-width-base': "0.09375rem",
380
428
  '--size-border-width-thick': "0.125rem",
@@ -393,6 +441,10 @@ export const cssVars = {
393
441
  '--space-lg': "clamp(1.25rem, 1.03rem + 1.09vw, 2rem)",
394
442
  '--space-xl': "clamp(1.5rem, 1.15rem + 1.74vw, 2.75rem)",
395
443
  '--space2xl': "clamp(2rem, 1.35rem + 3.26vw, 4.5rem)",
444
+ '--space-xs-sm': "clamp(0.25rem, 0.14rem + 0.54vw, 0.625rem)",
445
+ '--space-sm-md': "clamp(0.5rem, 0.28rem + 1.09vw, 1.25rem)",
446
+ '--space-md-lg': "clamp(0.875rem, 0.42rem + 2.28vw, 2rem)",
447
+ '--space-lg-xl': "clamp(1.25rem, 0.47rem + 3.91vw, 2.75rem)",
396
448
  '--font-body': "\"DM Sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif",
397
449
  '--font-size-sm': "clamp(0.8125rem, 0.78rem + 0.16vw, 0.9375rem)",
398
450
  '--font-size-base': "clamp(0.875rem, 0.83rem + 0.22vw, 1rem)",
@@ -1 +1 @@
1
- [data-theme=dark]{--ink-black:#fff;--ink-dark:#e5e5e5;--ink-medium:#a3a3a3;--ink-light:#737373;--ink-faint:#525252;--paper-white:#1a1a1a;--paper-cream:#2d2d2d;--paper-warm:#404040;--accent-primary:#a78bfa;--accent-primary-hover:#c4b5fd;--accent-primary-pressed:#8b5cf6;--accent-success:#4ade80;--accent-success-hover:#86efac;--accent-success-pressed:#22c55e;--semantic-warning:#fbbf24;--semantic-warning-hover:#fcd34d;--semantic-info:#38bdf8;--semantic-info-hover:#7dd3fc;--error-base:#f87171;--error-bg:#f871711f;--error-border:#f871714d}
1
+ [data-theme=dark]{--alpha-primary04:#a78bfa0a;--alpha-primary08:#a78bfa14;--alpha-primary10:#a78bfa1a;--alpha-primary12:#a78bfa1f;--alpha-primary15:#a78bfa26;--alpha-primary20:#a78bfa33;--alpha-primary30:#a78bfa4d;--alpha-primary40:#a78bfa66;--alpha-primary50:#a78bfa80;--alpha-success10:#4ade801a;--alpha-success15:#4ade8026;--alpha-success20:#4ade8033;--alpha-success30:#4ade804d;--alpha-warning08:#fbbf2414;--alpha-warning15:#fbbf2426;--alpha-warning20:#fbbf2433;--alpha-info08:#38bdf814;--alpha-info15:#38bdf826;--alpha-info20:#38bdf833;--alpha-ink04:#ffffff0a;--alpha-ink06:#ffffff0f;--alpha-ink10:#ffffff1a;--alpha-onAccent:#000000e6;--alpha-onAccentMuted:#0009;--brand-primary:#a78bfa;--brand-primary-hover:#c4b5fd;--brand-logo-text:#fff;--overlay-shadow-light:#0003;--overlay-shadow-subtle:#00000040;--overlay-shadow-medium:#00000059;--overlay-shadow-strong:#00000080;--overlay-shadow-heavy:#0009;--shadow-card:0 .0625rem .1875rem #0000001a,0 .375rem 1rem #00000026,0 1.5rem 3rem #0003;--shadow-button-hover-primary:0 .25rem .75rem #a78bfa66,0 .125rem .25rem #a78bfa4d;--shadow-button-hover-success:0 .25rem .75rem #4ade8066,0 .125rem .25rem #4ade804d;--shadow-input-focus:0 0 0 .1875rem #a78bfa33,inset 0 .0625rem .125rem #0000001a;--shadow-overlay:0 .25rem .5rem #0003;--shadow-modal:0 1.5rem 3rem #0000004d;--shadow-otp-cell-focus:0 0 0 .25rem #a78bfa33;--ink-black:#fff;--ink-dark:#e5e5e5;--ink-medium:#a3a3a3;--ink-light:#737373;--ink-faint:#525252;--paper-white:#1a1a1a;--paper-cream:#2d2d2d;--paper-warm:#404040;--accent-primary:#a78bfa;--accent-primary-hover:#c4b5fd;--accent-primary-pressed:#8b5cf6;--accent-success:#4ade80;--accent-success-hover:#86efac;--accent-success-pressed:#22c55e;--semantic-warning:#fbbf24;--semantic-warning-hover:#fcd34d;--semantic-info:#38bdf8;--semantic-info-hover:#7dd3fc;--error-base:#f87171;--error-bg:#f871711f;--error-border:#f871714d}
package/build/tokens.css CHANGED
@@ -1 +1 @@
1
- :root,[data-theme=light]{--duration-instant:.15s;--duration-fast:.3s;--duration-smooth:.4s;--duration-slow:.6s;--duration-slower:.8s;--easing-ease:ease;--easing-ease-in-out:cubic-bezier(.4,0,.2,1);--easing-bounce:cubic-bezier(.34,1.56,.64,1);--ink-effect-ripple-duration:.6s;--ink-effect-ripple-easing:cubic-bezier(.4,0,.2,1);--ink-effect-spread-scale:2.5;--ink-effect-fade-duration:.3s;--transition-fast:.15s ease;--transition-smooth:.3s cubic-bezier(.4,0,.2,1);--transition-bounce:.4s cubic-bezier(.34,1.56,.64,1);--opacity-disabled:.6;--opacity-hover:.7;--opacity-loading:.6;--opacity-hidden:0;--opacity-visible:1;--brand-primary:#7c5cff;--brand-primary-hover:#6a4ae8;--brand-logo-text:#1a1a1a;--accent-primary:#6b4fd9;--accent-primary-hover:#5a3fc8;--accent-primary-pressed:#4a32b0;--accent-success:#357a46;--accent-success-hover:#2d6a3c;--accent-success-pressed:#255a32;--alpha-primary04:#7c5cff0a;--alpha-primary08:#7c5cff14;--alpha-primary10:#7c5cff1a;--alpha-primary12:#7c5cff1f;--alpha-primary15:#7c5cff26;--alpha-primary20:#7c5cff33;--alpha-primary30:#7c5cff4d;--alpha-primary40:#7c5cff66;--alpha-primary50:#7c5cff80;--alpha-success10:#3d8a501a;--alpha-success15:#3d8a5026;--alpha-success20:#3d8a5033;--alpha-success30:#3d8a504d;--alpha-warning08:#b4530914;--alpha-warning15:#b4530926;--alpha-warning20:#b4530933;--alpha-info08:#0369a114;--alpha-info15:#0369a126;--alpha-info20:#0369a133;--alpha-ink04:#1a1a1a0a;--alpha-ink06:#1a1a1a0f;--alpha-ink10:#1a1a1a1a;--alpha-white15:#ffffff26;--alpha-white30:#ffffff4d;--alpha-white90:#ffffffe6;--error-base:#c0392b;--error-bg:#e74c3c14;--error-border:#e74c3c33;--ink-black:#1a1a1a;--ink-dark:#2d2d2d;--ink-medium:#5c5c5c;--ink-light:#8a8a8a;--ink-faint:#c4c4c4;--overlay-dim:#00000080;--overlay-dark:#000000b3;--overlay-shadow-light:#0000001a;--overlay-shadow-subtle:#00000026;--overlay-shadow-medium:#0003;--overlay-shadow-strong:#0000004d;--overlay-shadow-heavy:#0006;--overlay-glow-white:#ffffff26;--overlay-spinner-track:#ffffff4d;--paper-white:#faf9fc;--paper-cream:#f5f4f8;--paper-warm:#ebe9f0;--semantic-warning:#b45309;--semantic-warning-hover:#92400e;--semantic-warning-bg:#fff8e1;--semantic-warning-light:#fef3c7;--semantic-success-bg:#d1fae5;--semantic-info:#0369a1;--semantic-info-hover:#075985;--semantic-info-bg:#e0f2fe;--button-height:3.25rem;--button-height-secondary:3rem;--button-radius:.625rem;--button-font-size:.9375rem;--button-font-weight:500;--button-letter-spacing:.02em;--button-dark-hover:#2a2a2a;--button-text-height:2.5rem;--button-text-font-size:.875rem;--button-spinner-size:1rem;--button-spinner-border-width:2px;--container-max-width:25rem;--container-max-width-wide:26.25rem;--feedback-error-icon-size:1rem;--feedback-notice-icon-size:1.25rem;--input-padding-y:.875rem;--input-padding-x:1rem;--input-radius:.625rem;--input-font-size:1rem;--label-font-size:.75rem;--label-font-weight:500;--label-letter-spacing:.08em;--title-font-size:clamp(1.375rem,1.27rem + .54vw,1.75rem);--title-font-weight:600;--title-letter-spacing:-.02em;--form-subtitle-font-size:.9375rem;--page-container-max-width:25rem;--page-container-max-width-wide:26.25rem;--radius-sm:.5rem;--radius-md:.625rem;--radius-lg:.75rem;--radius-full:9999px;--radius-card:clamp(.75rem,.59rem + .78vw,1rem);--shadow-card:0 .0625rem .1875rem #1a1a1a0a,0 .375rem 1rem #1a1a1a0f,0 1.5rem 3rem #1a1a1a0f;--shadow-button-hover-primary:0 .25rem .75rem #7c5cff4d,0 .125rem .25rem #7c5cff33;--shadow-button-hover-success:0 .25rem .75rem #3d8a504d,0 .125rem .25rem #3d8a5033;--shadow-input-focus:0 0 0 .1875rem #7c5cff1f,inset 0 .0625rem .125rem #1a1a1a0a;--shadow-overlay:0 .25rem .5rem #0000001a;--shadow-modal:0 1.5rem 3rem #00000026;--shadow-otp-cell-focus:0 0 0 .25rem #7c5cff1a;--breakpoint-sm:640px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1280px;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--size-icon-sm:1rem;--size-icon-md:1.5rem;--size-icon-lg:2rem;--size-icon-xl:2.5rem;--size-spinner-sm:1rem;--size-spinner-md:2rem;--size-spinner-lg:4rem;--size-spinner-button:1.125rem;--size-border-width-thin:.0625rem;--size-border-width-base:.09375rem;--size-border-width-thick:.125rem;--size-border-width-heavy:.1875rem;--size-border-width-bold:.25rem;--size-chip-padding-sm:.125rem .5rem;--size-chip-padding-md:.25rem .75rem;--size-close-button:2rem;--space-fixed-2xs:.0625rem;--space-fixed-xs:.125rem;--space-fixed-sm:.25rem;--space-fixed-md:.5rem;--space-xs:clamp(.25rem,.23rem + .11vw,.3125rem);--space-sm:clamp(.5rem,.46rem + .22vw,.625rem);--space-md:clamp(.875rem,.77rem + .54vw,1.25rem);--space-lg:clamp(1.25rem,1.03rem + 1.09vw,2rem);--space-xl:clamp(1.5rem,1.15rem + 1.74vw,2.75rem);--space-2xl:clamp(2rem,1.35rem + 3.26vw,4.5rem);--font-body:"DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-size-sm:clamp(.8125rem,.78rem + .16vw,.9375rem);--font-size-base:clamp(.875rem,.83rem + .22vw,1rem);--font-size-lg:clamp(1rem,.93rem + .33vw,1.25rem);--font-size-xl:clamp(1.25rem,1.14rem + .54vw,1.5rem);--font-size-2xl:clamp(1.5rem,1.35rem + .76vw,1.875rem);--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--button-dark:var(--ink-black);--button-light:var(--paper-cream);--button-light-hover:var(--paper-warm);--button-text-padding-sm:var(--space-xs)var(--space-sm);--button-text-padding-md:var(--space-sm)var(--space-md);--button-content-gap:var(--space-sm);--card-padding:var(--space-lg);--card-radius:var(--radius-card);--feedback-error-padding:var(--space-md);--feedback-error-radius:var(--radius-md);--feedback-error-gap:var(--space-sm);--feedback-notice-padding:var(--space-md);--feedback-notice-radius:var(--radius-md);--feedback-notice-gap:var(--space-sm);--form-header-margin-bottom:var(--space-xl);--form-fields-gap:var(--space-lg);--form-footer-margin-top:var(--space-lg);--field-group-gap:var(--space-sm);--page-container-padding:var(--space-lg);--page-card-padding:var(--space-xl);--page-card-radius:var(--radius-lg)}
1
+ :root,[data-theme=light]{--offset-slide-up-sm:.25rem;--offset-slide-up-md:.625rem;--duration-instant:.15s;--duration-fast:.3s;--duration-smooth:.4s;--duration-slow:.6s;--duration-slower:.8s;--easing-ease:ease;--easing-ease-in-out:cubic-bezier(.4,0,.2,1);--easing-bounce:cubic-bezier(.34,1.56,.64,1);--ink-effect-ripple-duration:.6s;--ink-effect-ripple-easing:cubic-bezier(.4,0,.2,1);--ink-effect-spread-scale:2.5;--ink-effect-fade-duration:.3s;--transition-fast:.15s ease;--transition-smooth:.3s cubic-bezier(.4,0,.2,1);--transition-bounce:.4s cubic-bezier(.34,1.56,.64,1);--opacity-disabled:.6;--opacity-hover:.7;--opacity-loading:.6;--opacity-hidden:0;--opacity-visible:1;--brand-primary:#7c5cff;--brand-primary-hover:#6a4ae8;--brand-logo-text:#1a1a1a;--accent-primary:#6b4fd9;--accent-primary-hover:#5a3fc8;--accent-primary-pressed:#4a32b0;--accent-success:#357a46;--accent-success-hover:#2d6a3c;--accent-success-pressed:#255a32;--alpha-primary04:#7c5cff0a;--alpha-primary08:#7c5cff14;--alpha-primary10:#7c5cff1a;--alpha-primary12:#7c5cff1f;--alpha-primary15:#7c5cff26;--alpha-primary20:#7c5cff33;--alpha-primary30:#7c5cff4d;--alpha-primary40:#7c5cff66;--alpha-primary50:#7c5cff80;--alpha-success10:#3d8a501a;--alpha-success15:#3d8a5026;--alpha-success20:#3d8a5033;--alpha-success30:#3d8a504d;--alpha-warning08:#b4530914;--alpha-warning15:#b4530926;--alpha-warning20:#b4530933;--alpha-info08:#0369a114;--alpha-info15:#0369a126;--alpha-info20:#0369a133;--alpha-ink04:#1a1a1a0a;--alpha-ink06:#1a1a1a0f;--alpha-ink10:#1a1a1a1a;--alpha-white15:#ffffff26;--alpha-white30:#ffffff4d;--alpha-white90:#ffffffe6;--alpha-black15:#00000026;--alpha-black30:#0000004d;--alpha-black90:#000000e6;--alpha-onAccent:#fffffff2;--alpha-onAccentMuted:#fff9;--error-base:#c0392b;--error-bg:#e74c3c14;--error-border:#e74c3c33;--ink-black:#1a1a1a;--ink-dark:#2d2d2d;--ink-medium:#5c5c5c;--ink-light:#8a8a8a;--ink-faint:#c4c4c4;--overlay-dim:#00000080;--overlay-dark:#000000b3;--overlay-shadow-light:#0000001a;--overlay-shadow-subtle:#00000026;--overlay-shadow-medium:#0003;--overlay-shadow-strong:#0000004d;--overlay-shadow-heavy:#0006;--overlay-glow-white:#ffffff26;--overlay-spinner-track:#ffffff4d;--paper-white:#faf9fc;--paper-cream:#f5f4f8;--paper-warm:#ebe9f0;--semantic-warning:#b45309;--semantic-warning-hover:#92400e;--semantic-warning-bg:#fff8e1;--semantic-warning-light:#fef3c7;--semantic-success-bg:#d1fae5;--semantic-info:#0369a1;--semantic-info-hover:#075985;--semantic-info-bg:#e0f2fe;--button-height:3.25rem;--button-height-secondary:3rem;--button-radius:.625rem;--button-font-size:.9375rem;--button-font-weight:500;--button-letter-spacing:.02em;--button-dark-hover:#2a2a2a;--button-text-height:2.5rem;--button-text-font-size:.875rem;--button-spinner-size:1rem;--button-spinner-border-width:2px;--container-max-width:25rem;--container-max-width-wide:26.25rem;--feedback-error-icon-size:1rem;--feedback-notice-icon-size:1.25rem;--input-padding-y:.875rem;--input-padding-x:1rem;--input-radius:.625rem;--input-font-size:1rem;--label-font-size:.75rem;--label-font-weight:500;--label-letter-spacing:.08em;--title-font-size:clamp(1.375rem,1.27rem + .54vw,1.75rem);--title-font-weight:600;--title-letter-spacing:-.02em;--form-subtitle-font-size:.9375rem;--modal-max-width-sm:320px;--modal-max-width-md:400px;--modal-max-width-lg:600px;--modal-max-width-fluid:clamp(280px,85vw,320px);--modal-min-height:400px;--page-container-max-width:25rem;--page-container-max-width-wide:26.25rem;--radius-sm:.5rem;--radius-md:.625rem;--radius-lg:.75rem;--radius-full:9999px;--radius-card:clamp(.75rem,.59rem + .78vw,1rem);--shadow-card:0 .0625rem .1875rem #1a1a1a0a,0 .375rem 1rem #1a1a1a0f,0 1.5rem 3rem #1a1a1a0f;--shadow-button-hover-primary:0 .25rem .75rem #7c5cff4d,0 .125rem .25rem #7c5cff33;--shadow-button-hover-success:0 .25rem .75rem #3d8a504d,0 .125rem .25rem #3d8a5033;--shadow-input-focus:0 0 0 .1875rem #7c5cff1f,inset 0 .0625rem .125rem #1a1a1a0a;--shadow-overlay:0 .25rem .5rem #0000001a;--shadow-modal:0 1.5rem 3rem #00000026;--shadow-otp-cell-focus:0 0 0 .25rem #7c5cff1a;--shadow-focus-ring-width:.1875rem;--breakpoint-sm:640px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1280px;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--size-icon-xs:.75rem;--size-icon-sm:1rem;--size-icon-md:1.5rem;--size-icon-lg:2rem;--size-icon-xl:2.5rem;--size-icon-2xl:3rem;--size-icon-action:1.25rem;--size-spinner-sm:1rem;--size-spinner-md:2rem;--size-spinner-lg:4rem;--size-spinner-xl:5rem;--size-spinner-button:1.125rem;--size-screen-icon-sm:4rem;--size-screen-icon-md:5rem;--size-screen-icon-fluid:clamp(3rem,2.43rem + 2.86vw,5rem);--size-decoration-blob:clamp(12rem,9.43rem + 12.86vw,22rem);--size-progress-bar-width:12rem;--size-border-width-thin:.0625rem;--size-border-width-base:.09375rem;--size-border-width-thick:.125rem;--size-border-width-heavy:.1875rem;--size-border-width-bold:.25rem;--size-chip-padding-sm:.125rem .5rem;--size-chip-padding-md:.25rem .75rem;--size-close-button:2rem;--space-fixed-2xs:.0625rem;--space-fixed-xs:.125rem;--space-fixed-sm:.25rem;--space-fixed-md:.5rem;--space-xs:clamp(.25rem,.23rem + .11vw,.3125rem);--space-sm:clamp(.5rem,.46rem + .22vw,.625rem);--space-md:clamp(.875rem,.77rem + .54vw,1.25rem);--space-lg:clamp(1.25rem,1.03rem + 1.09vw,2rem);--space-xl:clamp(1.5rem,1.15rem + 1.74vw,2.75rem);--space-2xl:clamp(2rem,1.35rem + 3.26vw,4.5rem);--space-xs-sm:clamp(.25rem,.14rem + .54vw,.625rem);--space-sm-md:clamp(.5rem,.28rem + 1.09vw,1.25rem);--space-md-lg:clamp(.875rem,.42rem + 2.28vw,2rem);--space-lg-xl:clamp(1.25rem,.47rem + 3.91vw,2.75rem);--font-body:"DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-size-sm:clamp(.8125rem,.78rem + .16vw,.9375rem);--font-size-base:clamp(.875rem,.83rem + .22vw,1rem);--font-size-lg:clamp(1rem,.93rem + .33vw,1.25rem);--font-size-xl:clamp(1.25rem,1.14rem + .54vw,1.5rem);--font-size-2xl:clamp(1.5rem,1.35rem + .76vw,1.875rem);--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--button-dark:var(--ink-black);--button-light:var(--paper-cream);--button-light-hover:var(--paper-warm);--button-text-padding-sm:var(--space-xs)var(--space-sm);--button-text-padding-md:var(--space-sm)var(--space-md);--button-content-gap:var(--space-sm);--card-padding:var(--space-lg);--card-radius:var(--radius-card);--feedback-error-padding:var(--space-md);--feedback-error-radius:var(--radius-md);--feedback-error-gap:var(--space-sm);--feedback-notice-padding:var(--space-md);--feedback-notice-radius:var(--radius-md);--feedback-notice-gap:var(--space-sm);--form-header-margin-bottom:var(--space-xl);--form-fields-gap:var(--space-lg);--form-footer-margin-top:var(--space-lg);--field-group-gap:var(--space-sm);--page-container-padding:var(--space-lg);--page-card-padding:var(--space-xl);--page-card-radius:var(--radius-lg)}
package/build/tokens.d.ts CHANGED
@@ -2,6 +2,10 @@
2
2
  * Do not edit directly, this file was auto-generated.
3
3
  */
4
4
 
5
+ /** Small slide offset (4px) - error message animation */
6
+ export const offsetSlideUpSm: string;
7
+ /** Medium slide offset (10px) - screen enter animation */
8
+ export const offsetSlideUpMd: string;
5
9
  /** Instant feedback for micro-interactions */
6
10
  export const durationInstant: string;
7
11
  /** Fast transitions for hover/focus states */
@@ -76,6 +80,13 @@ export const alphaInk10: string;
76
80
  export const alphaWhite15: string;
77
81
  export const alphaWhite30: string;
78
82
  export const alphaWhite90: string;
83
+ export const alphaBlack15: string;
84
+ export const alphaBlack30: string;
85
+ export const alphaBlack90: string;
86
+ /** Text on accent backgrounds (primary, success). Light: white, Dark: black */
87
+ export const alphaOnAccent: string;
88
+ /** Muted text on accent backgrounds */
89
+ export const alphaOnAccentMuted: string;
79
90
  /** Error state. WCAG AA: 4.8:1 on paper-white */
80
91
  export const errorBase: string;
81
92
  /** Error background. Decorative, not for text */
@@ -197,6 +208,16 @@ export const formFieldsGap: string;
197
208
  export const formFooterMarginTop: string;
198
209
  /** Gap between label and input in field group */
199
210
  export const fieldGroupGap: string;
211
+ /** Small modal max-width (notification, offline) */
212
+ export const modalMaxWidthSm: string;
213
+ /** Medium modal max-width */
214
+ export const modalMaxWidthMd: string;
215
+ /** Large modal max-width (iframe) */
216
+ export const modalMaxWidthLg: string;
217
+ /** Fluid modal: 85% viewport, locked at 280-320px */
218
+ export const modalMaxWidthFluid: string;
219
+ /** Modal minimum height */
220
+ export const modalMinHeight: string;
200
221
  /** Default page container max width (400px) */
201
222
  export const pageContainerMaxWidth: string;
202
223
  /** Wide page container max width (420px) */
@@ -219,6 +240,8 @@ export const shadowInputFocus: string;
219
240
  export const shadowOverlay: string;
220
241
  export const shadowModal: string;
221
242
  export const shadowOtpCellFocus: string;
243
+ /** Focus ring spread width (3px) */
244
+ export const shadowFocusRingWidth: string;
222
245
  export const breakpointSm: string;
223
246
  export const breakpointMd: string;
224
247
  export const breakpointLg: string;
@@ -230,6 +253,8 @@ export const zIndexModalBackdrop: string;
230
253
  export const zIndexModal: string;
231
254
  export const zIndexPopover: string;
232
255
  export const zIndexTooltip: string;
256
+ /** Extra small icon size (12px) */
257
+ export const sizeIconXs: string;
233
258
  /** Small icon size (16px) */
234
259
  export const sizeIconSm: string;
235
260
  /** Medium icon size (24px) */
@@ -238,14 +263,30 @@ export const sizeIconMd: string;
238
263
  export const sizeIconLg: string;
239
264
  /** Extra large icon size (40px) */
240
265
  export const sizeIconXl: string;
266
+ /** 2X large icon size (48px) */
267
+ export const sizeIcon2xl: string;
268
+ /** Action icon size (20px) - arrows, callout icons */
269
+ export const sizeIconAction: string;
241
270
  /** Small spinner (16px) */
242
271
  export const sizeSpinnerSm: string;
243
272
  /** Medium spinner (32px) */
244
273
  export const sizeSpinnerMd: string;
245
274
  /** Large spinner (64px) */
246
275
  export const sizeSpinnerLg: string;
276
+ /** Extra large spinner (80px) */
277
+ export const sizeSpinnerXl: string;
247
278
  /** Spinner size inside buttons (18px) */
248
279
  export const sizeSpinnerButton: string;
280
+ /** Small screen icon (64px) */
281
+ export const sizeScreenIconSm: string;
282
+ /** Medium screen icon (80px) */
283
+ export const sizeScreenIconMd: string;
284
+ /** Fluid screen icon: 48px→80px (320px→1440px viewport) */
285
+ export const sizeScreenIconFluid: string;
286
+ /** Page decoration blob: 192px→352px fluid */
287
+ export const sizeDecorationBlob: string;
288
+ /** Progress bar width (192px) */
289
+ export const sizeProgressBarWidth: string;
249
290
  /** Thin border (1px) */
250
291
  export const sizeBorderWidthThin: string;
251
292
  /** Base border (1.5px) */
@@ -276,6 +317,14 @@ export const spaceMd: string;
276
317
  export const spaceLg: string;
277
318
  export const spaceXl: string;
278
319
  export const space2xl: string;
320
+ /** Fluid pair: xs→sm for steeper scaling (4px→10px) */
321
+ export const spaceXsSm: string;
322
+ /** Fluid pair: sm→md (8px→20px) */
323
+ export const spaceSmMd: string;
324
+ /** Fluid pair: md→lg (14px→32px) */
325
+ export const spaceMdLg: string;
326
+ /** Fluid pair: lg→xl (20px→44px) */
327
+ export const spaceLgXl: string;
279
328
  export const fontBody: string;
280
329
  export const fontSizeSm: string;
281
330
  export const fontSizeBase: string;
package/build/tokens.json CHANGED
@@ -1,4 +1,6 @@
1
1
  {
2
+ "OffsetSlideUpSm": "0.25rem",
3
+ "OffsetSlideUpMd": "0.625rem",
2
4
  "DurationInstant": "150ms",
3
5
  "DurationFast": "300ms",
4
6
  "DurationSmooth": "400ms",
@@ -53,6 +55,11 @@
53
55
  "AlphaWhite15": "#ffffff26",
54
56
  "AlphaWhite30": "#ffffff4d",
55
57
  "AlphaWhite90": "#ffffffe6",
58
+ "AlphaBlack15": "#00000026",
59
+ "AlphaBlack30": "#0000004d",
60
+ "AlphaBlack90": "#000000e6",
61
+ "AlphaOnAccent": "#fffffff2",
62
+ "AlphaOnAccentMuted": "#ffffff99",
56
63
  "ErrorBase": "#c0392b",
57
64
  "ErrorBg": "#e74c3c14",
58
65
  "ErrorBorder": "#e74c3c33",
@@ -125,6 +132,11 @@
125
132
  "FormFieldsGap": "clamp(1.25rem, 1.03rem + 1.09vw, 2rem)",
126
133
  "FormFooterMarginTop": "clamp(1.25rem, 1.03rem + 1.09vw, 2rem)",
127
134
  "FieldGroupGap": "clamp(0.5rem, 0.46rem + 0.22vw, 0.625rem)",
135
+ "ModalMaxWidthSm": "320px",
136
+ "ModalMaxWidthMd": "400px",
137
+ "ModalMaxWidthLg": "600px",
138
+ "ModalMaxWidthFluid": "clamp(280px, 85vw, 320px)",
139
+ "ModalMinHeight": "400px",
128
140
  "PageContainerMaxWidth": "25rem",
129
141
  "PageContainerMaxWidthWide": "26.25rem",
130
142
  "PageContainerPadding": "clamp(1.25rem, 1.03rem + 1.09vw, 2rem)",
@@ -142,6 +154,7 @@
142
154
  "ShadowOverlay": "0 0.25rem 0.5rem rgba(0, 0, 0, 0.1)",
143
155
  "ShadowModal": "0 1.5rem 3rem rgba(0, 0, 0, 0.15)",
144
156
  "ShadowOtpCellFocus": "0 0 0 0.25rem rgba(124, 92, 255, 0.1)",
157
+ "ShadowFocusRingWidth": "0.1875rem",
145
158
  "BreakpointSm": "640px",
146
159
  "BreakpointMd": "768px",
147
160
  "BreakpointLg": "1024px",
@@ -153,14 +166,23 @@
153
166
  "ZIndexModal": "1050",
154
167
  "ZIndexPopover": "1060",
155
168
  "ZIndexTooltip": "1070",
169
+ "SizeIconXs": "0.75rem",
156
170
  "SizeIconSm": "1rem",
157
171
  "SizeIconMd": "1.5rem",
158
172
  "SizeIconLg": "2rem",
159
173
  "SizeIconXl": "2.5rem",
174
+ "SizeIcon2xl": "3rem",
175
+ "SizeIconAction": "1.25rem",
160
176
  "SizeSpinnerSm": "1rem",
161
177
  "SizeSpinnerMd": "2rem",
162
178
  "SizeSpinnerLg": "4rem",
179
+ "SizeSpinnerXl": "5rem",
163
180
  "SizeSpinnerButton": "1.125rem",
181
+ "SizeScreenIconSm": "4rem",
182
+ "SizeScreenIconMd": "5rem",
183
+ "SizeScreenIconFluid": "clamp(3rem, 2.43rem + 2.86vw, 5rem)",
184
+ "SizeDecorationBlob": "clamp(12rem, 9.43rem + 12.86vw, 22rem)",
185
+ "SizeProgressBarWidth": "12rem",
164
186
  "SizeBorderWidthThin": "0.0625rem",
165
187
  "SizeBorderWidthBase": "0.09375rem",
166
188
  "SizeBorderWidthThick": "0.125rem",
@@ -179,6 +201,10 @@
179
201
  "SpaceLg": "clamp(1.25rem, 1.03rem + 1.09vw, 2rem)",
180
202
  "SpaceXl": "clamp(1.5rem, 1.15rem + 1.74vw, 2.75rem)",
181
203
  "Space2xl": "clamp(2rem, 1.35rem + 3.26vw, 4.5rem)",
204
+ "SpaceXsSm": "clamp(0.25rem, 0.14rem + 0.54vw, 0.625rem)",
205
+ "SpaceSmMd": "clamp(0.5rem, 0.28rem + 1.09vw, 1.25rem)",
206
+ "SpaceMdLg": "clamp(0.875rem, 0.42rem + 2.28vw, 2rem)",
207
+ "SpaceLgXl": "clamp(1.25rem, 0.47rem + 3.91vw, 2.75rem)",
182
208
  "FontBody": "\"DM Sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif",
183
209
  "FontSizeSm": "clamp(0.8125rem, 0.78rem + 0.16vw, 0.9375rem)",
184
210
  "FontSizeBase": "clamp(0.875rem, 0.83rem + 0.22vw, 1rem)",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@transcodes/design-tokens",
3
- "version": "0.3.5",
3
+ "version": "0.3.6",
4
4
  "private": false,
5
5
  "description": "Style Dictionary based design tokens with dark mode support for consistent, beautiful interfaces",
6
6
  "keywords": [