Skip to content

chore(tokens): sync Figma tokens#281

Draft
github-actions[bot] wants to merge 33 commits into
mainfrom
tokens/figma-sync
Draft

chore(tokens): sync Figma tokens#281
github-actions[bot] wants to merge 33 commits into
mainfrom
tokens/figma-sync

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

Figma Token Sync

Tokens Studio에서 자동으로 생성된 PR입니다.

파이프라인

  1. Tokens Studio → tokens/figma-sync Push
  2. Style Dictionary + @tokens-studio/sd-transforms: 변환 및 CSS/TS 빌드
  3. 이 PR → main 머지

Review checklist

  • validate 잡 Step Summary에서 CSS diff 확인
  • 의도하지 않은 토큰 삭제 없음
  • 머지 후 Storybook에서 시각적 변경 확인

Yeom-JinHo and others added 30 commits April 15, 2026 21:22
* fix(build): preserve css imports in sideEffects

* fix(build): preserve css side effects in template

* chore(changeset): add css sideEffects fix note

* chore(changeset): fix package list and description
* refactor(flex): align story options with constants

- replace hardcoded story options with Flex constants
- keep Storybook controls aligned with the current contract values
- reduce the risk of drift between implementation and story definitions

* test(flex): strengthen contract coverage

- align tests with the current Flex contract in side
- use constants as the source of truth for direction, align, justify, and wrap cases
- add coverage for normal values, asChild behavior, style overrides, ref forwarding, and common consumer usage patterns
- verify the Flex test suite passes at the package level

* test(flex): translate test descriptions to english

---------

Co-authored-by: KYBee <kybee@KYBeeui-Macmini.local>
* feat: primitive token

* fix: ci error

* docs: update spacing primitive token

* docs: update radius primitive token
* fix(tooltip): add aria-label for screen readers

* refactor(tooltip): migrate styles to vanilla-extract recipe

* test(tooltip): improve accessibility test coverage

* refactor(tooltip): use enum instead of string literal

* fix(tooltip): resolve type import error

* test(tooltip): translate test descriptions to English

* chore(tooltip): remove export and add changeset
* chore(chip): normalize package.json structure

* chore(packages): align package.json across workspace

* chore(tooling): add package.json consistency checker

* chore(packages): add clean script to template and accordion

* docs(claude): document package consistency policy

* fix(tooling): tighten allowlist fieldPath matching

* fix(tooling): harden policy allowlist validation

* feat(tooling): police sideEffects field in package policy

* fix(ci): mark consistency install step as non-blocking

* chore: drop per-package storybook scripts

* chore(tooling): promote test to hard rule, drop optionalScripts

* fix(tooling): allow publishConfig hard rules to be allowlisted

* docs(claude): sync package policy with enforced rules

* chore(deps): sync lockfile with workspace catalogs

* chore(tooling): namespace lint scripts (lint:biome, lint:package)
…as strategy (#258)

* feat(tokens): update primitive token JSON with extended scale

Add missing color shades (gray.950, status colors), expanded radius,
spacing, and typography scales to align with semantic token requirements.

Confidence: high
Scope-risk: narrow

* feat(tokens): add semantic token JSON draft in DTCG format

Introduce dark-mode semantic tokens for color, spacing, radius, and
typography. All values reference primitive aliases only — no raw hex or
px values. Each token includes two usage-scenario descriptions.
Light-mode tokens are deferred (tokens/semantic/light/ has .gitkeep only).

Confidence: high
Scope-risk: narrow

* feat(tokens): redesign CSS contract to match semantic token structure

Rewrite vars contract to reflect semantic layers (color.background.*,
color.foreground.*, color.accent.*, spacing.component.*, spacing.layout.*,
radius.component.*, radius.layout.*). Extract darkBaseColor shared object
and define four brand theme variants (default, 1st–4th).

Constraint: dark mode is the default; light mode is deferred
Rejected: per-theme contract files | increases maintenance surface
Confidence: high
Scope-risk: broad

* feat(button): migrate styles to new semantic vars paths

Update all token references to match the redesigned CSS contract:
color.primary → color.accent.default, spacing.sm/lg → spacing.component.*,
radius.md → radius.component.md, focus ring wired to color.border.focus.

Confidence: high
Scope-risk: narrow

* chore(tokens): mark unused TS primitive exports as deprecated

Add @deprecated JSDoc to opacity, zIndex, borderWidth/borderStyle,
shadows, spacing, breakpoints, grid, and responsiveStyle. These TS
source files will be removed alongside all other TS primitives once
the JSON token pipeline is complete and components have migrated to vars.*.

Directive: do not add new consumers of these exports
Confidence: high
Scope-risk: narrow

* chore: changeset

* feat(tokens): add brand primitive and update accent semantic alias

- Add color.brand.{default,hover,subtle} to primitive/color.json
  with current cohort values (#ffb24d, #d9963f, #3b2005)
- Update semantic accent.* to reference {color.brand.*} instead of
  blue to reflect actual brand color

brand primitive acts as the single update point per cohort;
semantic tokens and components require no changes on rebranding.

* feat(tokens): add brandColor and update defaultTheme accent to orange

- Export brandColor const from colors.ts (mirrors primitive brand.*)
- Import brandColor in themes.css.ts and apply to defaultTheme accent
  replacing hardcoded blue values

Note: colors.ts and themes.css.ts are deprecated and will be removed
once the Style Dictionary pipeline is in place.

* fix(theme): correct assignInlineVars contract mapping in ThemeProvider

assignInlineVars(vars.color, theme) was passing ThemeColor
{ primary, secondary, background, text, gradient } to a contract
that expects { accent, foreground, border, status, ... },
causing a TypeScript error and no-op CSS variable assignment.

Fix by scoping to vars.color.accent and mapping ThemeColor fields:
- primary   → accent.default
- secondary → accent.hover
- background → accent.subtle

* docs(tokens): add semantic token proposal with rebrand strategy

- Document semantic token structure (color, spacing, radius, typography)
- Add rebranding flow section explaining brand primitive alias pattern:
  update color.brand.* in primitive/color.json only on cohort change
- Note W3C Design Token format compatibility with Token Studio v2
  and Style Dictionary v4 for upcoming Figma pipeline integration

* fix(tokens): remove duplicate named exports from themes.css.ts

theme1st–theme4th were exported from both colors.ts (ThemeColor objects)
and themes.css.ts (createGlobalTheme return values), causing TS2308
ambiguous re-export errors in src/index.ts.

createGlobalTheme calls are CSS side effects; their return values are
not consumed by any external code, so export keywords are removed.

* Release (#256)

Co-authored-by: KYBee <kybee@KYBeeui-Macmini.local>
Co-authored-by: Jinho Yeom <81306489+Yeom-JinHo@users.noreply.github.com>
Co-authored-by: 이원주 <101818687+3o14@users.noreply.github.com>
Co-authored-by: YOUNGBEEN, KIM <62539910+KYBee@users.noreply.github.com>
Co-authored-by: 오소현 <53892427+osohyun0224@users.noreply.github.com>
Co-authored-by: Minji Jeon <105787441+minji0214@users.noreply.github.com>

* chore: update changeset BC

* docs: update semantic-proposal docs

* docs: modify semantic proposal muted token

* fix: modify spacing, radius themes

* chore: update deprecated annotation

---------

Co-authored-by: Evan <clcl6084@gmail.com>
Co-authored-by: KYBee <kybee@KYBeeui-Macmini.local>
Co-authored-by: Jinho Yeom <81306489+Yeom-JinHo@users.noreply.github.com>
Co-authored-by: YOUNGBEEN, KIM <62539910+KYBee@users.noreply.github.com>
Co-authored-by: 오소현 <53892427+osohyun0224@users.noreply.github.com>
Co-authored-by: Minji Jeon <105787441+minji0214@users.noreply.github.com>
…e tokens (#261)

* feat: style dictionary pipeline

* fix(tokens): adopt W3C DTCG format for primitives and fix token-names publish export

* fix: restore broken pnpm-lock.yaml after merge conflict resolution
…ation (#270)

* chore: formatting

* feat(tokens): setup design token transformation pipeline and CI automation

* ci: commit transformed tokens
* feat(accordion): add single/multiple open mode support

* chore(accordion): add changeset for single/multiple mode feature

* fix(accordian): improve controlled state handling and add initialValue prop
…259)

* refactor(tooltip): rename useTooltip.tsx to useTooltip.ts

* perf(tooltip): throttle scroll/resize position update with rAF

* feat(tooltip): support keyboard focus for hover trigger

* refactor(tooltip): replace trigger prop with MUI-style listener controls

* fix(tooltip): remove redundant isVisible condition in portal className

* refactor(tooltip): remove redundant code and improve WCAG compliance

- Remove always-true visible class from portal (portal only renders when isVisible=true)
- Remove associated CSS opacity/transform/transition/pointerEvents overrides
- Remove redundant position:fixed from inline styles (already in CSS base)
- Remove redundant --tooltip-bg-color JS fallback (CSS already has var fallback)
- Conditionally apply tabIndex=0 only when focus listener is active (WCAG 2.4.7)
- Apply styles.button class only when asChild=false (WCAG 1.4.3)

* chore: downgrade esbuild to ~0.24.0 to fix Storybook manager build

esbuild 0.27 changed its behavior to refuse transforming syntax for
old browser targets (es2020, chrome87). Storybook 8.5 manager build
uses these hardcoded targets and breaks with 0.27. Downgrade to 0.24
as a temporary fix until Storybook is upgraded to support esbuild 0.27.

* Revert "chore: downgrade esbuild to ~0.24.0 to fix Storybook manager build"

This reverts commit e3e8a95.

* refactor(tooltip): remove disableFocusListener prop

Focus listener is always required for keyboard accessibility (WCAG 2.1.1).
Removing this prop enforces accessible defaults and simplifies the API.

* feat(tooltip): add fade-in animation on mount

Uses @Keyframes instead of CSS transition to correctly animate on DOM
insertion. Respects prefers-reduced-motion for accessibility (WCAG 2.3.3).

* fix(tooltip): prevent focus event from interfering with click-controlled open state

On first click, the browser fires focus before click, causing onFocus→requestOpen
to set open=true before the onClick toggle sets it back to false. Fixed by tracking
mousedown state so focus triggered by mouse click is ignored (keyboard focus still works).

* chore: add changeset for tooltip API refactor

* refactor(tooltip): restore disableFocusListener, remove hardcoded tabIndex, spread rest props

- Restore disableFocusListener prop for click-only controlled mode support
- Remove hardcoded tabIndex={0} to respect consumer element focusability
- Spread ...rest onto wrapper so consumers can pass tabIndex, role, aria-* etc.
- Merge className from rest with internal styles via clsx

* test(tooltip): add missing coverage for mouseUp, scroll/resize, invalid placement

* refactor(tooltip): apply PR review feedback

- Change changeset from minor to major (trigger prop removal is breaking change)
- Compose user event handlers with internal handlers via composeHandlers helper
- Make placement and gap optional in useTooltip with default values

* fix(tooltip): guard setInternalOpen with isControlled check in controlled mode

Co-Authored-By: MinjiJeon <jinnyjeon@sweetspot.co.kr>

---------

Co-authored-by: MinjiJeon <jinnyjeon@sweetspot.co.kr>
3o14 and others added 3 commits May 1, 2026 18:31
warning color 조정(orange계열>yellow), 
border_focus 컬러 조정(brand_default로), 
black 컬러 조정(#000000),
background base> default로 네이밍 변경(foreground와 통일)
brand, accent컬러에서 pressed 토큰 추가, subtle은 유지
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 13, 2026

🦋 Changeset detected

Latest commit: 7aab08f

The changes in this PR will be included in the next version bump.

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@3o14 3o14 marked this pull request as draft May 13, 2026 09:15
@3o14
Copy link
Copy Markdown
Member

3o14 commented May 13, 2026

현재 dev 작업이 main에 머지되어야 해서 우선 draft로 전환해두었습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants