From 4610cf6756cb1f550401a18309707386f8bc6069 Mon Sep 17 00:00:00 2001 From: "Cristian D. Moreno (Kyonax)" Date: Wed, 15 Apr 2026 02:57:54 -0500 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20v0.3=20=E2=80=94=20Vue=20app,=20CAM?= =?UTF-8?q?-LOG=20overlay,=20landing=20index,=20shared=20widgets?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ship the first fully working build of RECKIT as a Vue 3 + Vite app. Routes per brand, a live CAM-LOG overlay wired to OBS WebSocket, a landing page index of all browser sources with search and preview, and a shared-widgets split so future brands can drop in audio / readout primitives. - Vue 3 + Vite 6 + Vue Router 4 + obs-websocket-js 5 + sass at src/ - SCSS 7-1 architecture (abstracts / base / layout / components), x25 typo scale, hud-label-base mixin, brand theming via CSS custom properties - Composables: use-obs-websocket (singleton), use-recording-status, use-audio-analyzer, use-scene-name - CAM-LOG at /@kyonax_on_tech/cam-person: HUD frame, dynamic SES::::T label, recording timer, audio meter bound to Mic/Aux, live diagnostic readout - Landing page at /: sticky frosted meta bar, brand tabs, responsive 3-column card grid, name/size/tags/requires search filter, status chips, preview modal with canvas-aspect iframe, postMessage trigger buttons - Shared widgets (src/shared/widgets/): audio-meter (self-contained OBS visualizer) and live-readout (text display with refresh_ms throttle) — drop into any brand, theme via --clr-primary-100 - Overlay card: **bold** emphasis markers in descriptions parsed without v-html; use_cases[] keyword tags rendered as chips and included in the search haystack - Version centralization: package.json is canonical; Vite injects __APP_VERSION__ at build time; src/shared/version.js exports VERSION + VERSION_TAG; UI imports VERSION_TAG (no hardcoded v0.x) - .gitignore hardened (editor state, OS junk, secret-file extensions, build caches, !.env.example negation for template) - README + package.json bumped to v0.3; CHANGELOG [v0.3] entry Modified-by: Cristian D. Moreno (Kyonax) --- .env.example | 4 + .gitignore | 131 +++- CHANGELOG.org | 69 +- README.org | 6 +- eslint.config.mjs | 3 +- index.html | 12 + package.json | 17 +- src/App.vue | 13 + .../SpaceMono/SpaceMonoNerdFont-Bold.ttf | Bin 0 -> 33824 bytes .../SpaceMonoNerdFont-BoldItalic.ttf | Bin 0 -> 37896 bytes .../SpaceMono/SpaceMonoNerdFont-Italic.ttf | Bin 0 -> 37992 bytes .../SpaceMono/SpaceMonoNerdFont-Regular.ttf | Bin 0 -> 34288 bytes src/app/scss/abstracts/_index.scss | 2 + src/app/scss/abstracts/_mixins.scss | 68 ++ src/app/scss/abstracts/_theme.scss | 57 ++ src/app/scss/abstracts/_variables.scss | 162 +++++ src/app/scss/base/_global.scss | 63 ++ src/app/scss/base/_index.scss | 2 + src/app/scss/base/_typography.scss | 6 + src/app/scss/components/_index.scss | 1 + src/app/scss/layout/_index.scss | 1 + src/app/scss/main.scss | 4 + src/brands/kyonax-on-tech/cam-person.vue | 250 +++++++ src/main.js | 15 + src/router.js | 32 + src/shared/components/corner-bracket.vue | 81 +++ src/shared/components/hud-frame.vue | 118 ++++ src/shared/components/overlay-card.vue | 585 ++++++++++++++++ src/shared/components/preview-modal.vue | 395 +++++++++++ src/shared/components/recording-timer.vue | 64 ++ src/shared/components/status-indicator.vue | 43 ++ src/shared/composables/use-audio-analyzer.js | 164 +++++ src/shared/composables/use-obs-websocket.js | 95 +++ .../composables/use-recording-status.js | 121 ++++ src/shared/composables/use-scene-name.js | 54 ++ src/shared/config.js | 20 + src/shared/data/overlays.js | 110 +++ src/shared/version.js | 22 + src/shared/widgets/audio-meter.vue | 106 +++ src/shared/widgets/live-readout.vue | 90 +++ src/views/home.vue | 651 ++++++++++++++++++ vite.config.js | 30 + 42 files changed, 3645 insertions(+), 22 deletions(-) create mode 100644 .env.example create mode 100644 index.html create mode 100644 src/App.vue create mode 100644 src/app/fonts/SpaceMono/SpaceMonoNerdFont-Bold.ttf create mode 100644 src/app/fonts/SpaceMono/SpaceMonoNerdFont-BoldItalic.ttf create mode 100644 src/app/fonts/SpaceMono/SpaceMonoNerdFont-Italic.ttf create mode 100644 src/app/fonts/SpaceMono/SpaceMonoNerdFont-Regular.ttf create mode 100644 src/app/scss/abstracts/_index.scss create mode 100644 src/app/scss/abstracts/_mixins.scss create mode 100644 src/app/scss/abstracts/_theme.scss create mode 100644 src/app/scss/abstracts/_variables.scss create mode 100644 src/app/scss/base/_global.scss create mode 100644 src/app/scss/base/_index.scss create mode 100644 src/app/scss/base/_typography.scss create mode 100644 src/app/scss/components/_index.scss create mode 100644 src/app/scss/layout/_index.scss create mode 100644 src/app/scss/main.scss create mode 100644 src/brands/kyonax-on-tech/cam-person.vue create mode 100644 src/main.js create mode 100644 src/router.js create mode 100644 src/shared/components/corner-bracket.vue create mode 100644 src/shared/components/hud-frame.vue create mode 100644 src/shared/components/overlay-card.vue create mode 100644 src/shared/components/preview-modal.vue create mode 100644 src/shared/components/recording-timer.vue create mode 100644 src/shared/components/status-indicator.vue create mode 100644 src/shared/composables/use-audio-analyzer.js create mode 100644 src/shared/composables/use-obs-websocket.js create mode 100644 src/shared/composables/use-recording-status.js create mode 100644 src/shared/composables/use-scene-name.js create mode 100644 src/shared/config.js create mode 100644 src/shared/data/overlays.js create mode 100644 src/shared/version.js create mode 100644 src/shared/widgets/audio-meter.vue create mode 100644 src/shared/widgets/live-readout.vue create mode 100644 src/views/home.vue create mode 100644 vite.config.js diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..5f41b08 --- /dev/null +++ b/.env.example @@ -0,0 +1,4 @@ +VITE_OBS_WS_HOST=127.0.0.1 +VITE_OBS_WS_PORT=4455 +VITE_OBS_WS_PASS= +VITE_OBS_WS_LAN= diff --git a/.gitignore b/.gitignore index 1da3219..31403da 100644 --- a/.gitignore +++ b/.gitignore @@ -1,29 +1,132 @@ -# Dependencies -node_modules/ +# ───────────────────────────────────────────────────────────── +# RECKIT — .gitignore +# ───────────────────────────────────────────────────────────── +# Organized by concern. Keep this file the single source of +# truth for what gets ignored. When in doubt, prefer ignoring. +# Cross-reference: .github/SECURITY.org +# ───────────────────────────────────────────────────────────── -# Build output +# ── Node / Vue / Vite ──────────────────────────────────────── +node_modules/ dist/ +dist-ssr/ +.vite/ +*.local + +# NOTE: package-lock.json was excluded during the bootstrap +# phase. Now that runtime deps exist, committing the lockfile +# is recommended for reproducible builds (`npm ci`) and +# supply-chain defense. Review before the next release cut. +package-lock.json -# Cache +# ── Build / cache ──────────────────────────────────────────── .cache/ +.parcel-cache/ +.turbo/ +.next/ +.nuxt/ +.svelte-kit/ +.output/ +.sass-cache/ +.eslintcache +.stylelintcache +.prettiercache + +# ── Logs ───────────────────────────────────────────────────── +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +# ── Test / coverage ────────────────────────────────────────── +coverage/ +.nyc_output/ +*.lcov -# Environment variables +# ── Environment / secrets ──────────────────────────────────── +# Real values live only on the contributor's machine. .env .env.local +.env.*.local .env.* +# But the template IS meant to be committed. +!.env.example -# Logs -*.log +# Hard ban on common secret-file extensions — never commit +# these even accidentally. Add a specific pattern here if you +# ever need to intentionally commit an encrypted variant. +*.pem +*.key +*.crt +*.cert +*.pfx +*.p12 +id_rsa +id_rsa.* +id_dsa +id_dsa.* +id_ed25519 +id_ed25519.* +known_hosts +secrets/ +credentials/ +.secrets/ +.aws/ +.gcloud/ +auth.json + +# RECKIT-specific: GPG-encrypted runtime config kept LOCAL by +# choice. Decrypt with `gpg --decrypt .rc.gpg`. +.rc +.rc.gpg -# OS files +# ── Editors / IDEs ─────────────────────────────────────────── +.vscode/ +.idea/ +*.iml +*.swp +*.swo +*~ +\#*\# +.\#* +.claude/ +.aider* + +# ── OS junk ────────────────────────────────────────────────── .DS_Store +.DS_Store? +.AppleDouble +.LSOverride +._* +.Spotlight-V100 +.Trashes +.fseventsd +.DocumentRevisions-V100 +.TemporaryItems +.VolumeIcon.icns Thumbs.db +ehthumbs.db +ehthumbs_vista.db +Desktop.ini +$RECYCLE.BIN/ -# Test coverage -coverage/ +# ── Temp / backup ──────────────────────────────────────────── +*.bak +*.orig +*.tmp +*.temp +tmp/ +temp/ -# Lock file (excluded until runtime dependencies are added) -package-lock.json - -# Local setup guides +# ── Local-only RECKIT contributor files ────────────────────── +# Setup notes / scratchpad docs that live on the contributor's +# machine only. .github/BRANCHES.org + +# Clipboard buffer for the most recent generated commit / PR +# text. Overwritten in place every time new text is produced. +# Local only — never committed. +COMMIT.org +PR.org diff --git a/CHANGELOG.org b/CHANGELOG.org index 08bff63..4007749 100644 --- a/CHANGELOG.org +++ b/CHANGELOG.org @@ -3,11 +3,78 @@ #+EMAIL: kyonax.corp@gmail.com #+DATE: Apr 13, 2026 #+FILETAGS: :KYO:RECKIT:CHANGELOG: -#+LAST_UPDATE: Apr 14, 2026 +#+LAST_UPDATE: Apr 15, 2026 #+OPTIONS: toc:nil num:nil H:4 +* [TODO] +** BUGs [0/1] +- [ ] The Subscriber Button should have a Link that takes the user directly so Subscribe Action. + +** FEATUREs +*** LANDING [0/1] +- [ ] Add a common / shared widgets section to the landing page index (audio-meter, live-readout, and future drop-in widgets). +*** WEBSOCKETs [0/1] +- [ ] Create the Websocket Item Explanation (Image, Title, Description, Optional Banners). + * [Unreleased] +* [v0.3] — 2026-04-15 :: Vue App + CAM-LOG Overlay + Landing Index + +** Added +- Vue 3 + Vite 6 + Vue Router 4 + obs-websocket-js 5 + sass app at =src/= +- =src/main.js=, =src/App.vue=, =src/router.js= (brand-routed) +- =index.html= (Vite entry) + =vite.config.js= +- SCSS 7-1 architecture at =src/app/scss/= (abstracts / base / layout / components) +- =$colors= / =$typo-scale= maps and =:root= CSS custom properties via =@each= loops +- Granular x25 type scale: =--fs-100= → =--fs-800= across small / medium / large breakpoints +- =hud-label-base= SCSS mixin (shared HUD typography) and =cyberpunk-glow= mixin +- SpaceMono Nerd Font stack at =src/app/fonts/= (Regular, Bold, Italic, BoldItalic) +- =.env= / =.env.example= + =src/shared/config.js= (frozen =OBS_CONFIG= from =VITE_*= vars) +- =src/shared/version.js= — single source of truth for runtime version string; =package.json= version injected via Vite =define: { __APP_VERSION__ }= +- =src/shared/composables/=: =use-obs-websocket= (singleton, auto-reconnect), =use-recording-status= (RecordStateChanged + take counter + HH:MM:SS), =use-audio-analyzer= (InputVolumeMeters), =use-scene-name= (CurrentProgramSceneChanged) +- =src/shared/components/=: =corner-bracket=, =hud-frame=, =status-indicator=, =recording-timer=, =overlay-card=, =preview-modal= +- =src/shared/widgets/= — brand-agnostic drop-in widgets: =audio-meter.vue= (self-contained OBS audio visualizer), =live-readout.vue= (text display with =refresh_ms= throttle) +- =src/shared/data/overlays.js= — overlay registry (=id=, =brand=, =name=, =description=, =use_cases[]=, =path=, =width/height/fps=, =requires[]=, =triggers[]=, =status=) +- CAM-LOG overlay (=src/brands/kyonax-on-tech/cam-person.vue=) at =/@kyonax_on_tech/cam-person= + + HUD frame + corner brackets + crosshair + identity block + toolkit-id + + Dynamic top-right label =SES::::T= driven by scene + take counter + + Recording timer (REC + dot turn red when recording; MODE + time stay white) + + Audio meter bound to =Mic/Aux= with 8× gain + + Live diagnostic readout (=WS:… | AUDIO:… | L0:…=, throttled to 5fps) +- ITEM-EXPLAIN overlay declared in registry (=status: 'planned'=, SHOW / HIDE / CYCLE triggers defined) +- Landing page (=src/views/home.vue=) at =/= + + Sticky frosted-glass meta bar (SOURCES / BRANDS / READY / CANVAS) + + ASCII logo loaded via Vite =?raw= import of =.github/assets/logo.txt= (no duplication) + + Brand tabs auto-derived from the overlay registry + + Responsive 3-column overlay card grid (1-col on mobile) with search filter + status chips + + Search haystack covers name, size, cache, requirements, and use-case keywords + + Preview modal — iframe scaled to canvas aspect-ratio, responsive via =window.resize= listener, RELOAD + trigger buttons in footer + + Trigger protocol via =postMessage= (dev testing only) +- Overlay card description supports =**bold**= markers (parsed into segments, no =v-html=) +- =use_cases[]= keyword tags on each card, included in the search haystack +- Typography variable naming convention documented in Section 1.11 of the session file + +** Changed +- =package.json= version =0.1.0= → =0.3.0= (canonical version) +- =README.org= =#+VERSION:= + logo footer + shields.io badge → =v0.3= +- =vite.config.js= exposes =__APP_VERSION__= from =package.json= at build time +- =eslint.config.mjs= declares =__APP_VERSION__= as a readonly global +- =.gitignore= covers =dist/=, =node_modules/=, =.env=, local artifacts + +** Decided +- OBS audio source: =InputVolumeMeters= event, not =getUserMedia= (CEF limitations) +- Default audio input: =Mic/Aux=. Skip Desktop Audio (zeroes) and browser sources (empty levels) +- Audio peak extraction: =inputLevelsMul[ch][1]=. Gain 8× to fill the visualizer scale +- Vue reactivity: =ref= with new array assignment per frame for v-for props (=shallowRef= + =triggerRef= does not cross the props boundary) +- =useObsWebsocket= is a module-level singleton — one connection shared by every composable/component +- =EventSubscription.All | EventSubscription.InputVolumeMeters= must be explicitly opted-in (high-volume) +- Take counter resets per browser source refresh (predictable per-session state) +- Overlay description schema splits WHAT (=description=) from WHEN (=use_cases[]= keywords) from technical prereqs (=requires[]=). No em dashes (=—=) anywhere in prose fields +- Brand-agnostic widgets live in =src/shared/widgets/=; primitives that still need wiring live in =src/shared/components/= +- =postMessage= trigger protocol is dev-only; production triggers come from OBS WebSocket events +- Brand theming happens via =--clr-primary-*= CSS custom properties; components never reference SASS variables directly +- Version centralization: =package.json= → Vite =define= → =src/shared/version.js= → UI. Bump =package.json= and =README.org= and the UI follows automatically + * [v0.1] — 2026-04-13 :: Brand Bootstrap ** Added - *RECKIT* identity (*R*ealtime · *E*dit-free · *C*apture · *K*yonax · *I*ntegrated · *T*oolkit) diff --git a/README.org b/README.org index 4bc1da1..cdece6a 100644 --- a/README.org +++ b/README.org @@ -2,7 +2,7 @@ #+EMAIL: kyonax.corp@gmail.com #+DATE: Apr 13, 2026 #+FILETAGS: :KYO:RECKIT:OBS:AUTOMATION:CONTENT: -#+VERSION: v0.1 +#+VERSION: v0.3 #+LAST_UPDATE: Apr 13, 2026 #+BEGIN_HTML @@ -23,7 +23,7 @@ ▓█▒█▓▓ ░██▓ ▒██▒░▒████▒▒ ▓███▀ ░▒██▒ █▄░██░ ░▒██▒ ░ ░▒▓░ ▓█▓█▓▓░ ▒▓ ░▒▓░░░ ▒░ ░░ ░▒ ▒ ░▒ ▒▒ ▓▒░▓ ▒ ░░ ▒░ ░░ ▓▓ ▓█▓▓▓▒ ░▒ ░ ▒░ ░ ░ ░ ░ ▒░ ░ ░▒ ▒░ ▒ ░ ░ ░▒ ░▓▓ -░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░v0.1 +░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░v0.3 @@ -38,7 +38,7 @@ Top language MPL-2.0 Apache-2.0 -v0.1 +v0.3 Cyber Code Syndicate
diff --git a/eslint.config.mjs b/eslint.config.mjs index 0bfe272..371a545 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -36,8 +36,8 @@ import js from '@eslint/js'; import importPlugin from 'eslint-plugin-import'; import jsdoc from 'eslint-plugin-jsdoc'; -import simpleImportSort from 'eslint-plugin-simple-import-sort'; import security from 'eslint-plugin-security'; +import simpleImportSort from 'eslint-plugin-simple-import-sort'; import unicorn from 'eslint-plugin-unicorn'; import globals from 'globals'; @@ -64,6 +64,7 @@ export default [ sourceType: 'module', globals: { ...globals.browser, + __APP_VERSION__: 'readonly', }, }, diff --git a/index.html b/index.html new file mode 100644 index 0000000..571a1a4 --- /dev/null +++ b/index.html @@ -0,0 +1,12 @@ + + + + + + RECKIT + + +
+ + + diff --git a/package.json b/package.json index 0dec414..369b2b3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@kyonax/reckit", - "version": "0.1.0", + "version": "0.3.0", "description": "RECKIT — Realtime Edit-free Capture Kyonax Integrated Toolkit", "author": { "name": "Cristian D. Moreno - Kyonax", @@ -36,19 +36,30 @@ ], "type": "module", "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", "lint": "eslint .", "lint:fix": "eslint . --fix" }, + "dependencies": { + "obs-websocket-js": "^5.0.6", + "vue": "^3.5.13", + "vue-router": "^4.5.0" + }, "devDependencies": { "@eslint/js": "^9.17.0", + "@vitejs/plugin-vue": "^5.2.1", "eslint": "^9.17.0", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jsdoc": "^50.6.3", - "eslint-plugin-prefer-optional-chaining": "^3.5.0", + "eslint-plugin-prefer-optional-chaining": "^0.0.1", "eslint-plugin-security": "^3.0.1", "eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-unicorn": "^56.0.1", - "globals": "^15.14.0" + "globals": "^15.14.0", + "sass": "^1.99.0", + "vite": "^6.0.7" }, "engines": { "node": ">=20.0.0" diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..78c30ab --- /dev/null +++ b/src/App.vue @@ -0,0 +1,13 @@ + + + + + diff --git a/src/app/fonts/SpaceMono/SpaceMonoNerdFont-Bold.ttf b/src/app/fonts/SpaceMono/SpaceMonoNerdFont-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..34712957ee6b5ae12b42fb7a25d2998865042a96 GIT binary patch literal 33824 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 hnqaM`Q~5MvmA{|lOd2qXXi literal 0 HcmV?d00001 diff --git a/src/app/fonts/SpaceMono/SpaceMonoNerdFont-Italic.ttf b/src/app/fonts/SpaceMono/SpaceMonoNerdFont-Italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c33f44d5a3c3e9594b6a8519eacf5018072be298 GIT binary patch literal 37992 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 F`#)t==F0#8 literal 0 HcmV?d00001 diff --git a/src/app/fonts/SpaceMono/SpaceMonoNerdFont-Regular.ttf b/src/app/fonts/SpaceMono/SpaceMonoNerdFont-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c965e1f88e0e564b8e0e4fbaf6e24623d9d777a2 GIT binary patch literal 34288 zcmb@v2Y_5xc`ts?xoygw-g~*zXLfdW>aMnpwn(eCUdgMnk}U5^vMpSN8^SS;a10p7 zNsJR5<0t$Gafl(ae)yV;pzv6}(?Qa?Q%|fBx~UUXFXq0>|+WAG!I)xckSUNsfE_ zJ$QfD<;SnMX7bVKA938(zu-9YcduBv;W*OmsP8DQhAXaq`{iH$?2}KU?l8w4{qC{L zR*nWgx%j&rcf~%uZyrN}(bv5d?LCX<)Uj)BJQ4nt_cM5p`pJf?uRF5xp3~QUoZ~K! zEC)1S}$KF8gH`lZvyue;&KE5@I|;7@)9{e9o@>n}Ur ze5KjoxDziT|7nhLFR#8zPSB?~GiT${?IcGjza$Wz_iaN4a)2WwPPQwGVpD9cR8o|E z#a6vpt9m_dNlj*44%P8;J`%~Z#GQjfBxsC>Zej&_9=B?N5#r(+$<5Hq=Hm!oV5!n17&#b5EmxDpdaD}xH>n=ZEMes6wN>_VR$I12s~F!PylbMmk_cAD8~yN zf1Klqz>{k^LIpyvMP@4O<^+K*;fC&r`5YmyC7C;Eq^u5&MEpu+gXs@V(_>P6NcHd&-Cb(Z@Ss>A zQdl+orkLb7k*lx%k`B?&b1uwdjhp1Axt;C#jfA7qL>8xrB=cJhgd!*9jv%`%iSiMS z=QaHCZ8H){5)NR=j)-FYIP=5pRb<0WpwMNvG*>neDb|xo3@UU;qDj1L(^Gh6LvvR?{i(=wJ zBqYl2qOUr^0A8j=fES2|rmgJ$@_vJsbT>M|+TH+8R{*CQ91%Xg;H|rMx&5#u!2SXE)?g%=9K?evwSR^*$ zYk@yyRq-bqeyw{dPR*^b$P6F@Y8fRamr4s3e(IKN#@q?3Z|?+F^l z3AKqCCrsjKcvno;215p8IIjtu!^u)J8sPJ&{}lIa@p8N7S7e97 zuHkXQlQ>06-RDVePU{imA9`fwTy4ndHIbLnkbb?aTa$BrDTh|ZR$rw#P>uzBvB*{1 zgW&EW6-37Tbn@9I5lZ`V)MhQ@Qc1tp8neaHNqLQ`*cdUkhOgSx5K&EP1mInxIlLUZ z{l*(_XUETX?sVtJbNR8nd#5843})CtK7QwY_uYBw?tAaO`>Sug;-1PyBk}miMU{K5 zcq@tPIWiaY6i!|8Cy5Kn1`%Bu}m z%~A6t8pNX9aPe>a;TO8`dAgyj;N{j-rDG)DRnV0Fp)}(6#NTg zD)T4rRf5$m73aYGNFp`4yV9&+j9zcH5tSx4gHDD3+Xnh=g02SWnoUe|+A4ww z31hM=oFr+mMTdFb&u@2VDv({4Lq)>ojcGuMhR;)Ts3h};S6{u@eQNGk3Vo{UoxkIb z8-oh@0)x&Jpi@UHLri1yL1U|MqCql<5+DN+CQ<{V`+h^RtU)HY4UKCuKF*Z4@>&s| zlPM2n-~vU@6*s&zPKO=w4ZEt&>e6hEO-0yy@x_s$ zjj9xD=6s6FZw90phNOYTIc|cRYtI@8ST+b7h%8IM4nTsF3B|CW<1xi1rs+6+94X{E zu2IWR6edtXE}u_&k|w6$F>Qtsc5Q;3H>QT8hvpu>FN%5`AWF$!E^JPYY3DN!Rs%KCX*YAes5uvyt45k|G-50Sg9Ht+uc;^dnS^} z@!d6UwY7gT86DYK?QZuKHmHiaq2TiuhT|?^ppVTvtOy#$ygRsfJ7NRVqKrAy{zPkP zi{ESKA+B8s4`I}((PxV^5_9DF?l(Q&U9!z*C$a90^r>6AQ}MDtnsUYyX+L>XVKToD z)j?>GJGjm5nUt!Sp(7J0j}Rx&@u5758ncXT1AHlWK!VtgbK5tzhbrjdruL4FJ4Tw7 z$)SmWmm4HyBgD7Z*BqcQL0bkWM@e6b%O0jwGsQBivDQqH=$cf`r9byHDUxsOnMin3 zg8^SI=8TW-tV%<>M&r&{-WwQ9c@qsxpWb;#-hsfzxNQ$ zw`XK%*H|L8ajDT*+L%gj+*hjsiF$~(LG2;hvkcG1Gr+Ux=pyiJ@1&|u?5X`~cu7Yy z@`S%MnpD)0yw{gwXa@Ymcr|;IbRlnjT&x`iqoN0ZWy$sCW-66hrvT`drlYTZ_H}^1 z)yb}XiA+A&GeCjLx~_qi+(003%k#AjQPk*GYqn3esT9*Zm=2?h{nuz7uj|2@7Siv^ zdD_UjzA!E7c4$!>FqzWhkT(^GjkHI^Z-sogdn>tvIPbq_@pk3*Mf7`xdllUL8PJQ& zK}*7H>slg2Gdvf}J_o7rOyjaMEeW)!{a8(hwBwn%Ii}gHZ&T#ZW~-6LkF|LR+WheC zT7&o8&tNqNeizpGU7b6*tz!Y#AAs;?Eg$DZ0b=o(0hB0+oN(lvFbB(*4{)*^mo=7u zUVaHE{ALA~+CIY7h6aiNdeq~xT1*BmN3x8d$(k1Q8Wn(PUAu#PA0tL<_3npgmQqbyQm`$>*sSEyX z+I=6ZLOM8eYb9YHUa05+SOd&5M1Ifz*9Mu?ZoXNMjp#8ZuHRo`G_G~G-C_ly3qdcu zz*yh7W@<$ux_JgGzBfY#gTZVtLoIedwSr=tkX2XBrJ6~NCtvJ7U)%rugU|2(^4q&_ zfAmrM)Y%z&fA=Uk#pK@zT2RqKNb?wsw41OzxWR#3 zCap%pp+Lf6H!u$z6gU90XQ@KQF?SJUT%uL$OF0;_%#?t<8yOoTq3VuC$QdsN;3jD7 zsCNJPo_8@v!JT(9FTuO!X?#9hftw&w$%JIZsyPaV;3%j|&B^(Rrc{I3K)5!jq68k1 z{f z;Y?%$VXm&eFm4vdvo1}uXBN-c!HM`Hab?GfJ9qAEM}{U5|7&nl5jpPu+Uw6L;Qv5sjVwwzD|bdbl-L zbe{b-pm7MTL!|}|G4BWEc!Bck^=0Pd1ho9(_H`z6kA*WveuzBW{WzKLK1TL;chRTj zzc>GV&8~uhOf9I_$f@o41?z>$#;UY4Ut(V~t(5x!hk0{E{nkn<3zZ#6RI2gtAfm<-P=jy)r9eP<7eT-kAkLlD$WZE;P5z4c};Zj|iUX#|`47x`dFlqpd zunNh)U3JA3Z(E$%v}t(m8)IL+=7t-tX*Q=87N*E4-KK}VPG`}Ujmx#uCL=smn%joC zu~ryQ^lfA83KqSC*>0K_sD|!4YH(c>{8XYovbg9YmSf$2AmuB&|KihuBXu8Dx{pd^ z7~|QCHUelv)zIJzIh@KcOHH#=&~B;315uI)~Mv)((8a?BCi)cTffryyG4 zUC?KVsVPe`b7(M2SpNg}gdD1|A7%^w3?Aq5hYl%+J~Xc!y8nLuE!Xp z(SnW%jPl^rUSiXS{vmxon?9|B{eh=3Y*sVsuaW(!s|UlK<}M9*Exf}a@`g8EZ@Aw8{rLuUCUa&?>W>X_Jf5O?=sE_!l<|p$(@-2PJ4aWtn@ogO=^pqg;C1S1^s9|#+ zLRWOp8S^8Aw3nbgCTL#scByR*_~TK3I*?A}fZi}mHJy+FNyZ`r^O}P{lu6I6b{@E{ zIUHI%o-7`@8s0SRuLrY}?=u&obEV{za?i;(fSr#^aPTj?UCg-!uMv7CkQF8YnY{LG zW9SE3NDqJ;Xta=Ei#m`aYam4TqQsM46VcSN=#Rdj!?HLKO?FS6+B^$rem@vq17~*L zqlg*x`teZ)Qo;>@{)fQB$GHaMslY1co}fJbT?@?Yc_kRS_SW#m$DseKajZ3@&_0|I zy7L6kic()+gV0QAw%*k1TefFW_hdBrdZ;{>h}5ynGPr5*+GDZt{iD-Y%%&DE+dqHN z&I66zV{ztd7`+6}7xHSdo^;y6`H&RJM_jVw(gkH;TQdrY-HQ4T9-JMKS{p2KWN>Og z$-dbWs4*U(nPeJ=;nmRoPb;6^|Ai0tnF_1Hj2f0S3IxA8 z$D@4k69e)0_mF2jze;F)ir4C7oQpa?uu<9gfz8{emB|MtmFevouhRJzco*8JppClL z2E4phizH%U5||1V6vVy)C$G-3HFzS`#@QeubT4m+patIJ(%N)2_`5&o{NTY)eBz*f z(b;zQqe}OWnOGxB3fa33D%u(WL;(Z@Cmz=&1Hk@zg(t1*!@It-Imps1>W!bO56;GpS=Vz&*s61|Z$Xhn}(w_Um%E`ba^T64ii9Y6o0W z2T7-EAP+Hr)NS3cGJhNSCnnqH$iteaOXhN?rK2FMTpf1V~3+t*XG4EXd6N z>@OGCc@0p4?`T*jo2NrUvTw+(AqOBz4bLOstjbt4_T#+(9VYy^PFA{LeSQ%=!!V z32e9DBY2wnssl6W9PwB&AFIZzi6pE!)d>Gc`VFi%#&H{RUv=)UVvs*m{JRH-7AI4w z$;H9i#eNuVfkv|UA$7Fi_ZLT#DqKTLi`7bEp-vZ^=8$z<;FE1@9)mfE5U=!@~+7=gOI;E zkg+HqNsSEz0t4f!I>xNsG0@&i1B1!-p)vP3oZDt!!ewKA&RzDs6@7)mwgLoZcrhTTEMm(*1)inl)s{ z7KZAVY|7_1T~Z%h7|+V{ye~V94l|c$JDqN2eL^R{sTNLdJT$J1El;JwwM}_va478! z4b9|~!gM*{OQVNW>mk!Z&YMB34@*3pR)V0-pk_m&w;GLLTKZyaZ3Zu#pUogSz!Wru zt*{xqaJJV~yM6|-H(Re)tPDr?2=(+*(>eOvt-PG<$wj~~%3rw(Y`Z^P;wlIa|;(All)vzuC zqX)lTA1EgO;^EMjzdZi|^2%+=(p>cNx$ZvlFyK;O9i~x@*Veg@>$E?>rdZZ72lX2a zJ-`@AkKe}G(v-L#Er-QE1IVuxV)>ccox}>x1q*;<{%0BhA~`jNS&!EfDsz7!t|RmY z98*%UbXaX%0HMC3_%9x+?wii$ruJ2uJAKN0G1>hr$%bBsR09KRC^a}RfA&5GuLm!L zRl1GEd4*{2s@fmX$h0#mox*- znZlBI=v<%)gb5FFgJTd&&OhnKQ{Vq^_plyy0-x>K?~rAn#~j+cX?2+VnbxLm z-JEN)=fVSi2!f`jhxzTmK(xs0cg+dai)fP*nuikpGg!x@)^GJA#9d5&>wkv6u-5L| zbWl?h!~FMRv=Kno#w-K2ioQWbWbxu5>$LGB^ z3sx!Kyb@4_H4$?Hr{IcEK@pK6h(pJvHKf7~qMI~K^VQ%M^m=H0KCUM6^QmYm3yiZ= zlc_B9vi+JV^6m zts#4Fh!9P^Tx=1Njh9WC4g~ms`Y&1X>*xgoG^+4Ro%4Qp^dYQ`j*(3H`aPFx6hmHF zJbXUAjDX`8(Pt0jHjA|B8E&kP=R7$+Z!+#J`il7!^9iIiAL=@}?Rl;06{WP8pE)p8 z-9MAh&+Z=@+CQ8Bx72t!7%Wdq}T4rIo zqRFIL@ZLf6@I0w~PC)`t*7UA(Di>41!fT4{IlZf|*ap|BXZ^hA>0NJH?Ru$wPVe%q z;Ze^+&Xk+~vflMY`sDn7K<}bl3-C$27Cz_H4{abl*`#YJ;0cgT>%~%POhFLCsRuD?YGng;)Q1@JneLg0y#eBdj1(ZjhP+Xe^ zwjJbmO;ut8QR{8p&tHEzd1We}J$y)+9cKXV zQYmzKMBGuh#30L9$Q-ofo}`0LpUtMSMQsTH;lb(#jP;iD$Z|gO;2szb1+(Kt3z9>Az`aH-SlLmPI5ezk>uGaDK(Pw#A+K8 z&XL(-wvZB~nT?X#NI65r;jpvPG&%#*}?XASbF zVE6v{vHa{%XudtQc_(?LYu{fPX0B3_>wb5B4r&tNS{g;Xa?aO<4ujpp;jX#U0TE`O zC3@}>a@zxs9K2t-{~#)>lV?%hiSoNJdK zOc}dpeql=4aL)#1YJoh9y0!XyZEQvx5v>iZG?-2B!%&ggBHFt5iVkHaECD*^MRI9A zPf~+gqxno)jcmv$f6hFbZQ_l%0tcF1#-Ci z5P7hBYHsdU5?AIttJr~jL=CaO=K4}nGMQ2Grwky`Lanf zH7Z8yZJA%Q#XT97j2RrpORI;>b~tie=1Z!F6k8GfdX}6b_anYP!N!e=1@O;BZBCqv z+T5T;Z6>(5>dHGLqrV6Wh5d$>^-%p@a0Yw`h}zKtHp%<{XQh&`dHudnvsLq_{gzZE zzFhSPO(x+ zkFgj{PP$wRNfDXHTU);v(KNGzz?w;o)D@J#c(A}uB}kKhzeu}uer^H#H4yaj1}%US zAZh@;jH<4b+mSRFVN4((lr5{VfY6>zac;p4(tx;kz3+eQl2Vn{KxMcY@c9A}2aRqI zOO?g2l+P9$BU!uE7xKIPnoa!@-9T=q9biRP!*ogn@!s7Cr8FWZSv8-wkZlC8lRM7a9DT z98l&_mLWg;lZ^;%Y`{ATTLu<LtJSN~N;8s{2T3$C*JqC1;0^ z&A=g5^KxjZQ+jHVrRtU=%Zodfx583;_775_CL;A{fu(9%vsME<`z)`Ps>uW`6&?we znr3j)>IH2Zxpfv4vwYsvf;ys`n-IyGk%@Zlq*?O60nZTE)Mlh8OIX77xFORZo8ORn zGg?U7ze~M4MU&BFtPJI?nP4md;2O;4GJ6U|lJwV2CR3|0;`w>q6xWB{h2m#4_b z0JmQBGWK-A>%P?jJl=vhGfJ={q9^)5#XP@3U$wQ1488QdT9C6Wdby#J*pXbWd3$A- zM4$Rh1&h^+bP6-`9N@q(J1DSHY8Oa5dX44<^*(?Z~4gEo7 zK^-a$j@yF?r&NnYd|t)C#?N|pA7+Wo(QJE4Ch$_CYx?>j+%O3FM6408RNn|O!Q57q zIr%2(c5H0p)I>NN$)b2DoysJQjQMH?H2h{7G!%9PoNQUP%lDvgMKD zK&w?OH7@l80v;UnnA0EhW)x>DKiH_3t{$jW3KJopFT@VO^hM0tDZtdmqBX&E)&&Iv ze1vQu+tUaNHexjmJg*lN+?)hMc=74O2E(XDx$-{x)V}wd9cIO54>%u`7`N)fB7z+N z4F(O5fnG2Ucw$`~Fi^Kxh(!rEG+1a9v6van$MSY77at0w96d~y4m3hgCk7>la; zyc&(+HWBs4Jf@1*?e?pYE^ye2d-J5fu;Tz0!Kc+w_)xtg!)zwOrysz`C~r)`=ARY;H9^myKu zk8Rn);-j`@EA;_w8x?}N_Gw$PNO>74Yx}a8JX&9eg+qL9THD+O9a7ue<@1m~*6Luc zZ>^3GynkH{A6P~mt3O-)YyJekfl0@-7eNoL37XBMK!&p9^ZLBtes4Hj?tbfIzxP+N zW7}c>W`mHME~LaKe#9E=1r!H1*w&H8+fyror(#nlPJNxhPdIt zgrQuvLkAa4l9d+%0l}&`je`w?m<#UNw$Tfh9KYIK{Y(C8ehBOO0j|w)uDBQ_vcpQU z2`SUEV}#JlJ#68|<;6p`iNUj7Mo~US8W~w)R3IOBRqEe)%Z_oX*H`pOrX8{QCq>< z{bL)k|6oa$tVaAfiOV^Za>_>0k@5+tp|mTQ+RHnGsr{R61si$LmbZ03YR9(4efEO& zhx_emi;4fHV02YnPNLQvvha0QP*MD;RMinQ?==|%&Y=0gW*Zb}esy*AXMB{Gxo>jc z=Y9ZOuEV6!>>A98hO7)<^*dF+1%66CELG~$r_CXjv)F7JeNAi{!VI^x*KFvR;hKk) z8zk5YXI>vw8pT6B{3m~#5mRYMXFw zH*E@Fvp=OaVzrvFL~pPeEDj-Ru}@mvHfootNAb|)t_YENnMxQC`Y*<v1FUwR;yG3OndD)=gv_i3ysNywE3U1LD=dC8E)g!wVi`_`#1DFPop~KDlqjr3ffDkhQ`nzSxY4-9852q2aldn^R zp2*Z?KoFn};b^cQIL<_WN`C;Zdw{zXcEuIkRai%R8+QV4s)+1@=__R*q(M{@JWkDQ zG6R&$s7bjD3Xy!EJYbf_bATT-TflBAAQ$jVtYYsDDgf4?0;iN|dS7$++)};D7#7lf z#P!@Gm)&!{#X^E=s~OI^z!IIllzU*PIuNfLOmB107;nTu9D zf-AeFK3Xib2$h^xi^c0AWVl!yt#8S?1V=)Uh#OPnAyhO9nzX0Tdz--X>Lp|B%9BRImk31^Pm>XN!i=*YS~%6 zULTW>Ef8^wNr+|x@*?A^H&7dXlFFJ+W@R@DviU=0ZpIbRh9p;HT+nX4QE#C91fjQ> zO%_Wf9T;#KB)fgVlc~hh*8%B4!v?1(V&MS}XGpRHoE{z`Asrtm)GZQGgWh3EWEi9o5u{$dHfa=|PpM%TAUh&bJDg+vUw6!D0} zVl<0zMG%|hm*b)$qHJ>C6mVTKTBO^I7Na71QbB=wAnYp^dq}{McAF5d>LO;NMK;1OEtrE5zaW`xgWxs9 z%0A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 I`Y?R{4;B1yB>(^b literal 0 HcmV?d00001 diff --git a/src/app/scss/abstracts/_index.scss b/src/app/scss/abstracts/_index.scss new file mode 100644 index 0000000..925a6f3 --- /dev/null +++ b/src/app/scss/abstracts/_index.scss @@ -0,0 +1,2 @@ +@forward "theme"; +@forward "mixins"; diff --git a/src/app/scss/abstracts/_mixins.scss b/src/app/scss/abstracts/_mixins.scss new file mode 100644 index 0000000..3ee35c1 --- /dev/null +++ b/src/app/scss/abstracts/_mixins.scss @@ -0,0 +1,68 @@ +@use "sass:map"; +@use "sass:math"; +@use "variables" as *; + +@mixin font-face($name, $path, $weight: normal, $style: normal) { + @font-face { + font-family: "#{$name}"; + src: url("/src/app/fonts/#{$path}.ttf") format("truetype"); + font-weight: #{$weight}; + font-style: #{$style}; + } +} + +@mixin min-media-query($key) { + $size: map.get($breakpoints, $key); + + @media only screen and (min-width: $size) { + @content; + } +} + +@mixin max-media-query($key) { + $size: map.get($breakpoints, $key); + + @media only screen and (max-width: $size) { + @content; + } +} + +@mixin hud-label-base { + position: absolute; + font-family: var(--font-mono); + font-size: var(--fs-475); + text-transform: uppercase; + letter-spacing: 2px; + color: var(--clr-neutral-50); +} + +@mixin cyberpunk-glow( + $glow-color: hsl(47, 95%, 56%), + $blur: 15px, + $spread: 5px, + $animated: true, + $speed: 1.5s, + $pulse-variation: 0.2 +) { + box-shadow: 0 0 $spread $blur $glow-color; + + @if $animated { + $index: math.floor(calc(math.random() * 1000000)); + + animation: cyberpunk-pulse-#{$index} $speed ease-in-out infinite alternate; + + @keyframes cyberpunk-pulse-#{$index} { + 0% { + box-shadow: 0 0 calc(#{$spread} / 2) calc(#{$blur} / 2) $glow-color; + } + + 50% { + box-shadow: 0 0 calc(#{$spread} * (1.5 + $pulse-variation)) calc(#{$blur} * (1.5 + $pulse-variation)) $glow-color; + } + + 100% { + box-shadow: 0 0 calc(#{$spread} / 2) calc(#{$blur} / 2) $glow-color; + } + } + } +} diff --git a/src/app/scss/abstracts/_theme.scss b/src/app/scss/abstracts/_theme.scss new file mode 100644 index 0000000..09501b6 --- /dev/null +++ b/src/app/scss/abstracts/_theme.scss @@ -0,0 +1,57 @@ +@use "variables" as *; +@use "mixins" as *; + +:root { + @each $color, $shades in $colors { + @each $shade, $value in $shades { + --clr-#{$color}-#{$shade}: #{$value}; + } + } + + @each $screen-size, $font-size in $typo-scale { + @if $screen-size == small { + @each $size, $value in $font-size { + --fs-#{$size}: #{$value}; + } + } @else if $screen-size == medium { + @include min-media-query(md) { + @each $size, $value in $font-size { + --fs-#{$size}: #{$value}; + } + } + } @else if $screen-size == large { + @include min-media-query(lg) { + @each $size, $value in $font-size { + --fs-#{$size}: #{$value}; + } + } + } + } + + --font-mono: "SpaceMono", "Roboto Mono", "Courier New", Courier, monospace; + + --canvas-width: 1920px; + --canvas-height: 1080px; + --hud-bar-offset: 24px; + --hud-bar-gap: 24px; +} + +::selection { + background-color: var(--clr-primary-100); + color: var(--clr-neutral-500); +} + +::-moz-selection { + background-color: var(--clr-primary-100); + color: var(--clr-neutral-500); +} + +.cyberpunk-glow { + @include cyberpunk-glow( + var(--cyberpunk-glow-color, var(--clr-primary-100)), + var(--cyberpunk-glow-blur, 1px), + var(--cyberpunk-glow-spread, 9px), + true, + var(--cyberpunk-glow-speed, 1.5s) + ); +} diff --git a/src/app/scss/abstracts/_variables.scss b/src/app/scss/abstracts/_variables.scss new file mode 100644 index 0000000..cfe9d29 --- /dev/null +++ b/src/app/scss/abstracts/_variables.scss @@ -0,0 +1,162 @@ +$breakpoints: ( + sm: 48em, + md: 64em, + lg: 82.667em, + xl: 100em, +); + +$colors: ( + primary: ( + 50: hsl(48, 95%, 78%), + 100: hsl(47, 95%, 56%), + 200: hsl(49, 100%, 39%), + 300: hsl(48, 100%, 29%), + 400: hsl(45, 100%, 20%), + 500: hsl(35, 100%, 13%), + ), + secondary: ( + 50: hsl(224, 95%, 78%), + 100: hsl(224, 95%, 56%), + 200: hsl(224, 74%, 45%), + 300: hsl(224, 74%, 39%), + 400: hsl(224, 74%, 34%), + 500: hsl(224, 74%, 22%), + ), + neutral: ( + 50: hsl(0, 0%, 95%), + 100: hsl(0, 0%, 85%), + 200: hsl(0, 0%, 65%), + 300: hsl(0, 0%, 45%), + 400: hsl(0, 0%, 25%), + 500: hsl(0, 0%, 0%), + ), + border: ( + 50: hsla(0, 0%, 95%, 0.2), + 100: hsla(0, 0%, 100%, 0.2), + 200: hsla(0, 0%, 91%, 0.2), + 300: hsla(0, 0%, 86%, 0.2), + 400: hsla(0, 0%, 61%, 0.2), + 500: hsla(0, 0%, 46%, 0.2), + 600: hsla(0, 0%, 26%, 0.2), + ), + success: ( + 50: hsl(91, 48%, 72%), + 100: hsl(91, 62%, 44%), + 200: hsl(91, 100%, 28%), + 300: hsl(105, 100%, 21%), + 400: hsl(120, 100%, 15%), + 500: hsl(120, 100%, 9%), + ), + warning: ( + 50: hsl(29, 95%, 78%), + 100: hsl(29, 95%, 56%), + 200: hsl(30, 100%, 40%), + 300: hsl(25, 100%, 32%), + 400: hsl(17, 100%, 24%), + 500: hsl(0, 100%, 17%), + ), + error: ( + 50: hsl(352, 65%, 74%), + 100: hsl(352, 69%, 48%), + 200: hsl(352, 70%, 39%), + 300: hsl(352, 70%, 34%), + 400: hsl(352, 70%, 29%), + 500: hsl(352, 69%, 19%), + ), +); + +$typo-scale: ( + small: ( + 100: 0.625rem, + 125: 0.6875rem, + 150: 0.75rem, + 175: 0.8125rem, + 200: 0.875rem, + 225: 0.90625rem, + 250: 0.9375rem, + 275: 0.96875rem, + 300: 1rem, + 325: 1.03125rem, + 350: 1.0625rem, + 375: 1.09375rem, + 400: 1.125rem, + 425: 1.21875rem, + 450: 1.3125rem, + 475: 1.40625rem, + 500: 1.5rem, + 525: 1.59375rem, + 550: 1.6875rem, + 575: 1.78125rem, + 600: 1.875rem, + 625: 1.96875rem, + 650: 2.0625rem, + 675: 2.15625rem, + 700: 2.25rem, + 725: 2.4375rem, + 750: 2.625rem, + 775: 2.8125rem, + 800: 3rem, + ), + medium: ( + 100: 0.75rem, + 125: 0.8125rem, + 150: 0.875rem, + 175: 0.9375rem, + 200: 1rem, + 225: 1.03125rem, + 250: 1.0625rem, + 275: 1.09375rem, + 300: 1.125rem, + 325: 1.15625rem, + 350: 1.1875rem, + 375: 1.21875rem, + 400: 1.25rem, + 425: 1.375rem, + 450: 1.5rem, + 475: 1.625rem, + 500: 1.75rem, + 525: 1.875rem, + 550: 2rem, + 575: 2.125rem, + 600: 2.25rem, + 625: 2.4375rem, + 650: 2.625rem, + 675: 2.8125rem, + 700: 3rem, + 725: 3.25rem, + 750: 3.5rem, + 775: 3.75rem, + 800: 4rem, + ), + large: ( + 100: 0.875rem, + 125: 0.9375rem, + 150: 1rem, + 175: 1.0625rem, + 200: 1.125rem, + 225: 1.15625rem, + 250: 1.1875rem, + 275: 1.21875rem, + 300: 1.25rem, + 325: 1.3125rem, + 350: 1.375rem, + 375: 1.4375rem, + 400: 1.5rem, + 425: 1.625rem, + 450: 1.75rem, + 475: 1.875rem, + 500: 2rem, + 525: 2.25rem, + 550: 2.5rem, + 575: 2.75rem, + 600: 3rem, + 625: 3.375rem, + 650: 3.75rem, + 675: 4.125rem, + 700: 4.5rem, + 725: 4.875rem, + 750: 5.25rem, + 775: 5.625rem, + 800: 6rem, + ), +); diff --git a/src/app/scss/base/_global.scss b/src/app/scss/base/_global.scss new file mode 100644 index 0000000..5af9bdd --- /dev/null +++ b/src/app/scss/base/_global.scss @@ -0,0 +1,63 @@ +@use "../abstracts/variables" as *; + +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +/* 12px base: OBS overlay targets 1920x1080 with tighter + type scale than browser default (16px). Changing this + rescales all rem-based sizing. */ +html { + font-size: 12px; +} + +body { + font-family: var(--font-mono); + font-display: swap; + font-size: var(--fs-300); + line-height: var(--fs-500); + letter-spacing: -0.03rem; + color: var(--clr-neutral-50); + background: transparent; + min-height: 100vh; +} + +#app { + min-height: 100vh; +} + +/* Custom scrollbar — minimal, monochrome */ +* { + scrollbar-width: thin; + scrollbar-color: var(--clr-neutral-300) transparent; +} + +*::-webkit-scrollbar { + width: 6px; + height: 6px; +} + +*::-webkit-scrollbar-track { + background: transparent; +} + +*::-webkit-scrollbar-thumb { + background: var(--clr-neutral-300); +} + +a { + color: inherit; + text-decoration: none; +} + +button { + font-family: inherit; + cursor: pointer; + border: none; + background: none; + color: inherit; +} diff --git a/src/app/scss/base/_index.scss b/src/app/scss/base/_index.scss new file mode 100644 index 0000000..6229e93 --- /dev/null +++ b/src/app/scss/base/_index.scss @@ -0,0 +1,2 @@ +@forward "typography"; +@forward "global"; diff --git a/src/app/scss/base/_typography.scss b/src/app/scss/base/_typography.scss new file mode 100644 index 0000000..d46f188 --- /dev/null +++ b/src/app/scss/base/_typography.scss @@ -0,0 +1,6 @@ +@use "../abstracts/mixins"; + +@include mixins.font-face("SpaceMono", "SpaceMono/SpaceMonoNerdFont-Regular", 400, normal); +@include mixins.font-face("SpaceMono", "SpaceMono/SpaceMonoNerdFont-Bold", 700, normal); +@include mixins.font-face("SpaceMono", "SpaceMono/SpaceMonoNerdFont-Italic", 400, italic); +@include mixins.font-face("SpaceMono", "SpaceMono/SpaceMonoNerdFont-BoldItalic", 700, italic); diff --git a/src/app/scss/components/_index.scss b/src/app/scss/components/_index.scss new file mode 100644 index 0000000..22452fc --- /dev/null +++ b/src/app/scss/components/_index.scss @@ -0,0 +1 @@ +// Component partials — add as HUD components grow diff --git a/src/app/scss/layout/_index.scss b/src/app/scss/layout/_index.scss new file mode 100644 index 0000000..37c726a --- /dev/null +++ b/src/app/scss/layout/_index.scss @@ -0,0 +1 @@ +// Layout partials — add as overlays grow diff --git a/src/app/scss/main.scss b/src/app/scss/main.scss new file mode 100644 index 0000000..e20c521 --- /dev/null +++ b/src/app/scss/main.scss @@ -0,0 +1,4 @@ +@use "abstracts"; +@use "base"; +@use "layout"; +@use "components"; diff --git a/src/brands/kyonax-on-tech/cam-person.vue b/src/brands/kyonax-on-tech/cam-person.vue new file mode 100644 index 0000000..dde1e04 --- /dev/null +++ b/src/brands/kyonax-on-tech/cam-person.vue @@ -0,0 +1,250 @@ + + + + + + + diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..136557c --- /dev/null +++ b/src/main.js @@ -0,0 +1,15 @@ +/** + * Copyright (c) 2026 Cristian D. Moreno — @Kyonax + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. See LICENSE or https://mozilla.org/MPL/2.0/ + */ + +import { createApp } from 'vue'; + +import App from './App.vue'; +import { router } from './router.js'; + +const app = createApp(App); + +app.use(router); +app.mount('#app'); diff --git a/src/router.js b/src/router.js new file mode 100644 index 0000000..8b742fc --- /dev/null +++ b/src/router.js @@ -0,0 +1,32 @@ +/** + * Copyright (c) 2026 Cristian D. Moreno — @Kyonax + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. See LICENSE or https://mozilla.org/MPL/2.0/ + */ + +import { createRouter, createWebHistory } from 'vue-router'; + +const routes = [ + { + path: '/', + name: 'home', + component: () => import('./views/home.vue'), + }, + { + path: '/@kyonax_on_tech/cam-person', + name: 'kyonax-cam-person', + component: () => import( + './brands/kyonax-on-tech/cam-person.vue' + ), + }, + { + path: '/:pathMatch(.*)*', + name: 'blank', + component: { render: () => null }, + }, +]; + +export const router = createRouter({ + history: createWebHistory(), + routes, +}); diff --git a/src/shared/components/corner-bracket.vue b/src/shared/components/corner-bracket.vue new file mode 100644 index 0000000..9499eaa --- /dev/null +++ b/src/shared/components/corner-bracket.vue @@ -0,0 +1,81 @@ + + + + + + + diff --git a/src/shared/components/hud-frame.vue b/src/shared/components/hud-frame.vue new file mode 100644 index 0000000..9d6f85e --- /dev/null +++ b/src/shared/components/hud-frame.vue @@ -0,0 +1,118 @@ + + + + + + + diff --git a/src/shared/components/overlay-card.vue b/src/shared/components/overlay-card.vue new file mode 100644 index 0000000..0496355 --- /dev/null +++ b/src/shared/components/overlay-card.vue @@ -0,0 +1,585 @@ + + + + + + + diff --git a/src/shared/components/preview-modal.vue b/src/shared/components/preview-modal.vue new file mode 100644 index 0000000..02c1728 --- /dev/null +++ b/src/shared/components/preview-modal.vue @@ -0,0 +1,395 @@ + + +