Skip to content

Pensaernïaeth

Mae gan pantoken un swydd: datrys tokenau a eiconau dylunio Instructure unwaith, yna ail-lunio’r model hwnnw ar gyfer pob targed. Mae’r haenau isod yn cadw’r ail-lunio hwnnw’n onest ac yn sicrhau nad yw’r pecynnau cyhoeddedig yn ddibynnol ar unrhyw ffynhonnell GitHub-yn-unig.

Y haenau

flowchart TD upstream["@instructure/instructure-design-tokens<br/>(upstream, GitHub-only)"] core["@pantoken/core<br/>buildTokens() / toCss() - resolves upstream into the IR"] tokens["@pantoken/tokens<br/>the IR, vendored as static JSON per theme<br/>(the decoupling point)"] formats["formats/<br/>(css, scss, ...)"] renderers["renderers/<br/>(react, vue, web-components, ...)"] platforms["platforms/<br/>(swift, wordpress, ...)"] design["design/<br/>(figma, swatches)"] bundlers["bundlers/<br/>(vite, tailwind, ...)"] upstream --> core --> tokens tokens --> formats tokens --> renderers tokens --> platforms tokens --> design tokens --> bundlers
  • @pantoken/model yn dal y cytundebau math, dim byd arall. Dyma ffynhonnell y gwir ar gyfer siâp Token a’r cytundeb plugin, heb ddibyniaethau, felly gall unrhyw becyn ddibynnu arni’n rhydd.
  • @pantoken/core yw’r unig becyn sy’n eich cysylltu â’r ffynhonnell upstream. Mae’n datrys tokenau ac eiconau i’r IR canonig ac yn rendro CSS.
  • @pantoken/tokens yn vendorio’r IR hwnnw fel JSON statig yn ystod y broses adeiladu. Dyma bwynt datgysylltu: mae pecynnau lawr afon yn darllen @pantoken/tokens, nid @pantoken/core, felly npm i pantoken byth yn cyrraedd am y ffynhonnell GitHub-yn-unig.
  • @pantoken/utils yn cario’r cymorth rhannol — yr var(--x) resolver, y regexau cyfeiriad, trosi achos a lliw, a’r gwiriadau drifft sy’n cadw’r allbwn a gynhyrchir yn ffyddlon i’r IR.

Pam mae tokenau yn cael eu vendorio

Mae’r pecyn tokenau upstream yn byw ar GitHub, nid yn npm. Pe bai pob pecyn lawr afon yn ddibynnol arno, byddai npm i pantoken yn methu i unrhyw un heb y mynediad hwnnw. Yn hytrach mae @pantoken/tokens yn datrys y ffynhonnell unwaith yn ystod y broses adeiladu ac yn ysgrifennu’r canlyniad i JSON statig. Mae’r pecynnau cyhoeddedig yn cario’r JSON hwnnw, felly maent yn gosod yn lan o npm, yn cloi ar semver, ac yn gweithio i ffwrdd o’r rhyngrwyd.

Adrannau

Mae pob blwch lawr afon yn ffordd o ddefnyddio’r IR:

  • formats/ — troi’r tokenau yn ffeil (CSS, SCSS, Less, Stylus, DTCG).
  • renderers/ — integreiddiadau fframwaith a offer (React, Vue, Svelte, MUI, Pendo, a mwy).
  • bundlers/ — ategion a rhagsetiau offer adeiladu (Vite, Next, Tailwind, Panda, PostCSS, webpack).
  • platforms/ — targedau hynafiol a gweithwyr-safle (Swift, Kotlin, Rust, WordPress, Drupal).
  • design/ — pecynnau ar gyfer offer dylunio (Figma, paletiau lliw).
  • plugins/ — trawsnewidiadau dewisol sy’n estyn y allbwn token neu CSS. Gweler Plugins.

Allbwn a gynhyrchwyd

Mae pob pecyn sy’n allyrru ffeil yn ei ysgrifennu i gyfeiriadur generated/ y pecyn penodol a mae proses adeiladu yn ei adlewyrchu, felly nid oes dim a gynhyrchir yn cael ei gofrestru. Mae tasg gweithle yn dilysu popeth. Gweler Allbwn a gynhyrchwyd.