gitoriaLog in with ident

tracker

All repositories: gitoria

ReadmeCodePull requestsReleasesTicketsSettings
Commitdcc5eecadcc5eecaMerge branch 't14-search'mredcc5eeca/shared/tokens.hl

2.5 KB

  1. // tokens.hl — THE WorldAPI design tokens (ticket antcolony#3, mission 021). Hand-written; this is
  2. // the one source. Every Hybriel app carries a verbatim copy as `shared/tokens.hl` (vendored like
  3. // plugins/; source: loreana /media/STORAGE/projects/worldapi-tokens/tokens.hl — edit THERE, then
  4. // `cp` it into each app, see that folder's README.md).
  5. //
  6. // A token is a css variable declared as a VALUE (hl:web/css `var()`): the stylesheet walker names
  7. // it after its member (`blueDark` → `--blue-dark`), writes it into the sheet's one `:root`, and turns
  8. // every use into `var(--blue-dark)`. `static` makes it importable. An app's styles.hl imports the
  9. // tokens it uses and writes them as members:
  10. //
  11. // import { var } from 'hl:web/css'
  12. // import { purple, colorText, colorBackground } from './shared/tokens.hl'
  13. // colorAccent = var(purple) // the app's accent — the ONLY token an app sets
  14. // body { color = colorText background = colorBackground }
  15. //
  16. // (hl:web does this itself since hybriel#39; the local patch of mission 021 is gone)
  17. import { var } from 'hl:web/css'
  18. // ---- the palette (VS Code Dark+) ----------------------------------------------------------
  19. static dark = var('rgb(25, 30, 35)')
  20. static darker = var('rgb(15, 20, 25)')
  21. static light = var('rgb(195, 200, 205)')
  22. static lighter = var('rgb(245, 250, 255)')
  23. static blueDark = var('#569bd4')
  24. static greenDark = var('#4ec9b0')
  25. static yellow = var('#dcdcaa')
  26. static orange = var('#ce9178')
  27. static red = var('#f44747')
  28. static purple = var('#c586c0')
  29. static blueLight = var('#9cdcfe')
  30. static greenLight = var('#b5cea8')
  31. // ---- semantic tokens: components and rules use only these -----------------------------------
  32. static colorBackground = var(dark)
  33. static colorBackgroundSunken = var(darker)
  34. static colorSurface = var('rgb(35, 40, 45)')
  35. static colorBorder = var('rgb(70, 75, 80)')
  36. static colorText = var(light)
  37. static colorTextStrong = var(lighter)
  38. static colorTextMuted = var('rgb(145, 150, 155)')
  39. static colorAction = var(blueDark)
  40. static colorSuccess = var(greenDark)
  41. static colorWarning = var(yellow)
  42. static colorDanger = var(red)
  43. static colorSpecial = var(purple)
  44. // the accent: per app (tickets purple, ident orange, tracker greenDark, gitoria blueDark, notes
  45. // yellow, calendar blueLight, antcolony greenLight). An app declares its own `colorAccent =
  46. // var(<palette token>)` in styles.hl; hl:web writes it after this default, so the app's wins.
  47. static colorAccent = var(colorAction)
  48. // text ON the accent (buttons, badges, selected filters)
  49. static colorAccentText = var(darker)

Branches

Latest commits

  • dcc5eecaMerge branch 't14-search'mre
  • 03edc783Merge branch 't15-tvmaze'mre
  • 71b46345tracker#15: numbering check by date or title, placeholder titles in other languages, docs + real-data proofmre
  • 6bb2daf1tracker#13: homepage (tiles, intro, latest movies/shows), /shows, /movies/page/N, /my/movies; lists cached in memorymre
  • b8bd1157tracker#14: README + STATUS (search, real-data numbers, gate, merge notes)mre
  • 65c694a8tracker#14: search — header magnifier, /search/<text> (in-memory word-prefix index over titles + people), Fetch from web (TMDB search/multi, ours left out), Add = import via syncShow; gate +25 checks, real-data scriptmre
  • 34f2c15btracker#15: TVmaze merge in the sync (gaps only: new episodes/seasons, empty titles/air dates; numbering check), fake TVmaze episodes + gatemre
  • cbdc4ea7tracker#12: link icons TMDB/IMDb/TVDB/TVmaze; sync fills missing ids (TVmaze lookup); movies fetched via /movie/mre
  • b105bcd8tracker#11: Hybriel master ff51cf46 (checks no longer vanish), mobile-first styles, carets, follow button, sign-in modal, inverted check, orange castmre
  • 31b758aatracker#10: installable app (manifest, service worker, offline shell), own icon + faviconmre
  • 2fa9d997tracker#9: TMDB sync (followed shows: seasons, episodes, posters), tools/sync-tmdb.hl + daily run 04:00 UTC, fake TMDB in gatemre
  • 49e1f61edeploy.sh: back up live storage/.sessions/.env before every deploy (newest 5 kept)mre
  • 54070a4etracker#8: /my/unwatched + /my/schedule (301 from old), S01E01, title (year), 1 episode, watched-set lookup (unwatched 15s -> 1s)mre
  • 3251488atracker#7: /my/shows (followed shows, newest follow first, poster, title, last watched SxxEyy); gate can take screenshots (TRACKER_GATE_SHOTS)mre
  • 44b7d9f9tracker#6: /schedule — upcoming episodes of followed shows, soonest firstmre
  • 91c9fc8ctracker#5: /unwatched — unwatched released episodes of followed shows, newest firstmre
  • a97c0295tracker#4: show page /shows/:slug (header, seasons, episodes, watch checks) + tools/relink-episode-seasons.hlmre
  • 05f407c5tracker: no border on any button except inverted ones (Log out, ident status and identities too); header brand weight 100mre
  • 17375427tracker#2: tools/migrate.hl + tools/verify.hl — old MongoDB data into mpackdb with new idsmre
  • 31aac936tracker#3: no border on the header and on filled buttons; inverted buttons keep theirsmre