diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..c53a523 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +indent_style = space +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false \ No newline at end of file diff --git a/assets/oneko/cats/ace.png b/assets/oneko/cats/ace.png new file mode 100644 index 0000000..7a5e46f Binary files /dev/null and b/assets/oneko/cats/ace.png differ diff --git a/assets/oneko/cats/blue-tapy.png b/assets/oneko/cats/blue-tapy.png new file mode 100644 index 0000000..382ce36 Binary files /dev/null and b/assets/oneko/cats/blue-tapy.png differ diff --git a/assets/oneko/cats/calico.png b/assets/oneko/cats/calico.png new file mode 100644 index 0000000..bb04e59 Binary files /dev/null and b/assets/oneko/cats/calico.png differ diff --git a/assets/oneko/cats/cattail.png b/assets/oneko/cats/cattail.png new file mode 100644 index 0000000..43f42c0 Binary files /dev/null and b/assets/oneko/cats/cattail.png differ diff --git a/assets/oneko/cats/esmeralda.png b/assets/oneko/cats/esmeralda.png new file mode 100644 index 0000000..f40b86a Binary files /dev/null and b/assets/oneko/cats/esmeralda.png differ diff --git a/assets/oneko/cats/jess.png b/assets/oneko/cats/jess.png new file mode 100644 index 0000000..4e11fef Binary files /dev/null and b/assets/oneko/cats/jess.png differ diff --git a/assets/oneko/cats/kina.png b/assets/oneko/cats/kina.png new file mode 100644 index 0000000..fbb59c6 Binary files /dev/null and b/assets/oneko/cats/kina.png differ diff --git a/assets/oneko/cats/lucy.png b/assets/oneko/cats/lucy.png new file mode 100644 index 0000000..2074af8 Binary files /dev/null and b/assets/oneko/cats/lucy.png differ diff --git a/assets/oneko/cats/maia.png b/assets/oneko/cats/maia.png new file mode 100644 index 0000000..4d85b2d Binary files /dev/null and b/assets/oneko/cats/maia.png differ diff --git a/assets/oneko/cats/maria.png b/assets/oneko/cats/maria.png new file mode 100644 index 0000000..6b86074 Binary files /dev/null and b/assets/oneko/cats/maria.png differ diff --git a/assets/oneko/cats/mike.png b/assets/oneko/cats/mike.png new file mode 100644 index 0000000..e9a50f8 Binary files /dev/null and b/assets/oneko/cats/mike.png differ diff --git a/assets/oneko/cats/rainbow-tapy.png b/assets/oneko/cats/rainbow-tapy.png new file mode 100644 index 0000000..e9c80ae Binary files /dev/null and b/assets/oneko/cats/rainbow-tapy.png differ diff --git a/assets/oneko/cats/silver.png b/assets/oneko/cats/silver.png new file mode 100644 index 0000000..8afab36 Binary files /dev/null and b/assets/oneko/cats/silver.png differ diff --git a/assets/oneko/cats/spirit.png b/assets/oneko/cats/spirit.png new file mode 100644 index 0000000..b1d7924 Binary files /dev/null and b/assets/oneko/cats/spirit.png differ diff --git a/assets/oneko/cats/tapy.png b/assets/oneko/cats/tapy.png new file mode 100644 index 0000000..ac11e6e Binary files /dev/null and b/assets/oneko/cats/tapy.png differ diff --git a/assets/oneko/cats/usa.png b/assets/oneko/cats/usa.png new file mode 100644 index 0000000..4104eb4 Binary files /dev/null and b/assets/oneko/cats/usa.png differ diff --git a/assets/oneko/cats/valentine.png b/assets/oneko/cats/valentine.png new file mode 100644 index 0000000..f38a1ef Binary files /dev/null and b/assets/oneko/cats/valentine.png differ diff --git a/assets/oneko/classics/aquaneon.png b/assets/oneko/classics/aquaneon.png new file mode 100644 index 0000000..8ccc65a Binary files /dev/null and b/assets/oneko/classics/aquaneon.png differ diff --git a/assets/oneko/classics/black-green.png b/assets/oneko/classics/black-green.png new file mode 100644 index 0000000..21ea9a6 Binary files /dev/null and b/assets/oneko/classics/black-green.png differ diff --git a/assets/oneko/classics/black.png b/assets/oneko/classics/black.png new file mode 100644 index 0000000..3d0e00d Binary files /dev/null and b/assets/oneko/classics/black.png differ diff --git a/assets/oneko/classics/byte-green.png b/assets/oneko/classics/byte-green.png new file mode 100644 index 0000000..a1b930e Binary files /dev/null and b/assets/oneko/classics/byte-green.png differ diff --git a/assets/oneko/classics/classic.png b/assets/oneko/classics/classic.png new file mode 100644 index 0000000..1481a4b Binary files /dev/null and b/assets/oneko/classics/classic.png differ diff --git a/assets/oneko/classics/deedee.png b/assets/oneko/classics/deedee.png new file mode 100644 index 0000000..143474b Binary files /dev/null and b/assets/oneko/classics/deedee.png differ diff --git a/assets/oneko/classics/dusty.png b/assets/oneko/classics/dusty.png new file mode 100644 index 0000000..2567beb Binary files /dev/null and b/assets/oneko/classics/dusty.png differ diff --git a/assets/oneko/classics/ghost.png b/assets/oneko/classics/ghost.png new file mode 100644 index 0000000..4324ebe Binary files /dev/null and b/assets/oneko/classics/ghost.png differ diff --git a/assets/oneko/classics/ghostspirit.png b/assets/oneko/classics/ghostspirit.png new file mode 100644 index 0000000..f6f8d19 Binary files /dev/null and b/assets/oneko/classics/ghostspirit.png differ diff --git a/assets/oneko/classics/gold.png b/assets/oneko/classics/gold.png new file mode 100644 index 0000000..d0272c4 Binary files /dev/null and b/assets/oneko/classics/gold.png differ diff --git a/assets/oneko/classics/gray.png b/assets/oneko/classics/gray.png new file mode 100644 index 0000000..8ab0f9c Binary files /dev/null and b/assets/oneko/classics/gray.png differ diff --git a/assets/oneko/classics/red.png b/assets/oneko/classics/red.png new file mode 100644 index 0000000..a114581 Binary files /dev/null and b/assets/oneko/classics/red.png differ diff --git a/assets/oneko/classics/sapphire.png b/assets/oneko/classics/sapphire.png new file mode 100644 index 0000000..27f3898 Binary files /dev/null and b/assets/oneko/classics/sapphire.png differ diff --git a/assets/oneko/classics/silversky.png b/assets/oneko/classics/silversky.png new file mode 100644 index 0000000..f557545 Binary files /dev/null and b/assets/oneko/classics/silversky.png differ diff --git a/assets/oneko/classics/vaporwave.png b/assets/oneko/classics/vaporwave.png new file mode 100644 index 0000000..d957f87 Binary files /dev/null and b/assets/oneko/classics/vaporwave.png differ diff --git a/assets/oneko/gaming/andriod.png b/assets/oneko/gaming/andriod.png new file mode 100644 index 0000000..0448df6 Binary files /dev/null and b/assets/oneko/gaming/andriod.png differ diff --git a/assets/oneko/gaming/lololowka.png b/assets/oneko/gaming/lololowka.png new file mode 100644 index 0000000..806d582 Binary files /dev/null and b/assets/oneko/gaming/lololowka.png differ diff --git a/assets/oneko/gaming/niko.png b/assets/oneko/gaming/niko.png new file mode 100644 index 0000000..d218edf Binary files /dev/null and b/assets/oneko/gaming/niko.png differ diff --git a/assets/oneko/gaming/sans.png b/assets/oneko/gaming/sans.png new file mode 100644 index 0000000..74783c7 Binary files /dev/null and b/assets/oneko/gaming/sans.png differ diff --git a/assets/oneko/gaming/sonic.png b/assets/oneko/gaming/sonic.png new file mode 100644 index 0000000..1e01531 Binary files /dev/null and b/assets/oneko/gaming/sonic.png differ diff --git a/assets/oneko/gaming/toothless.png b/assets/oneko/gaming/toothless.png new file mode 100644 index 0000000..7a9495e Binary files /dev/null and b/assets/oneko/gaming/toothless.png differ diff --git a/assets/oneko/gaming/yumi-nikki-1-skin.png b/assets/oneko/gaming/yumi-nikki-1-skin.png new file mode 100644 index 0000000..e10a626 Binary files /dev/null and b/assets/oneko/gaming/yumi-nikki-1-skin.png differ diff --git a/assets/oneko/gaming/yumi-nikki-2-skin.png b/assets/oneko/gaming/yumi-nikki-2-skin.png new file mode 100644 index 0000000..436e3c8 Binary files /dev/null and b/assets/oneko/gaming/yumi-nikki-2-skin.png differ diff --git a/assets/oneko/operating-systems/bsd.png b/assets/oneko/operating-systems/bsd.png new file mode 100644 index 0000000..b77d524 Binary files /dev/null and b/assets/oneko/operating-systems/bsd.png differ diff --git a/assets/oneko/other-animals/blue-butterfly.png b/assets/oneko/other-animals/blue-butterfly.png new file mode 100644 index 0000000..16beab5 Binary files /dev/null and b/assets/oneko/other-animals/blue-butterfly.png differ diff --git a/assets/oneko/other-animals/bunny.png b/assets/oneko/other-animals/bunny.png new file mode 100644 index 0000000..882fc1c Binary files /dev/null and b/assets/oneko/other-animals/bunny.png differ diff --git a/assets/oneko/other-animals/bxter.png b/assets/oneko/other-animals/bxter.png new file mode 100644 index 0000000..9ea59b0 Binary files /dev/null and b/assets/oneko/other-animals/bxter.png differ diff --git a/assets/oneko/other-animals/dog.png b/assets/oneko/other-animals/dog.png new file mode 100644 index 0000000..ecb82b3 Binary files /dev/null and b/assets/oneko/other-animals/dog.png differ diff --git a/assets/oneko/other-animals/fox.png b/assets/oneko/other-animals/fox.png new file mode 100644 index 0000000..b5911ac Binary files /dev/null and b/assets/oneko/other-animals/fox.png differ diff --git a/assets/oneko/other-animals/humming_bird.png b/assets/oneko/other-animals/humming_bird.png new file mode 100644 index 0000000..bb42a31 Binary files /dev/null and b/assets/oneko/other-animals/humming_bird.png differ diff --git a/assets/oneko/other-animals/jerry.png b/assets/oneko/other-animals/jerry.png new file mode 100644 index 0000000..b7348bd Binary files /dev/null and b/assets/oneko/other-animals/jerry.png differ diff --git a/assets/oneko/other-animals/poochy.png b/assets/oneko/other-animals/poochy.png new file mode 100644 index 0000000..dc8c10a Binary files /dev/null and b/assets/oneko/other-animals/poochy.png differ diff --git a/assets/oneko/other-animals/red-butterfly.png b/assets/oneko/other-animals/red-butterfly.png new file mode 100644 index 0000000..142988e Binary files /dev/null and b/assets/oneko/other-animals/red-butterfly.png differ diff --git a/assets/oneko/other-animals/santino.png b/assets/oneko/other-animals/santino.png new file mode 100644 index 0000000..4b4dff2 Binary files /dev/null and b/assets/oneko/other-animals/santino.png differ diff --git a/assets/oneko/other-animals/stingray.png b/assets/oneko/other-animals/stingray.png new file mode 100644 index 0000000..e70edfa Binary files /dev/null and b/assets/oneko/other-animals/stingray.png differ diff --git a/assets/oneko/other-animals/tato.png b/assets/oneko/other-animals/tato.png new file mode 100644 index 0000000..7360d0d Binary files /dev/null and b/assets/oneko/other-animals/tato.png differ diff --git a/assets/oneko/other-animals/tentacle.png b/assets/oneko/other-animals/tentacle.png new file mode 100644 index 0000000..70c992d Binary files /dev/null and b/assets/oneko/other-animals/tentacle.png differ diff --git a/assets/oneko/pokemon/eevee.png b/assets/oneko/pokemon/eevee.png new file mode 100644 index 0000000..25f2c0c Binary files /dev/null and b/assets/oneko/pokemon/eevee.png differ diff --git a/assets/oneko/pokemon/espeon.png b/assets/oneko/pokemon/espeon.png new file mode 100644 index 0000000..d5beea7 Binary files /dev/null and b/assets/oneko/pokemon/espeon.png differ diff --git a/assets/oneko/pokemon/gastly.png b/assets/oneko/pokemon/gastly.png new file mode 100644 index 0000000..797f42a Binary files /dev/null and b/assets/oneko/pokemon/gastly.png differ diff --git a/assets/oneko/pokemon/jigglypuff.png b/assets/oneko/pokemon/jigglypuff.png new file mode 100644 index 0000000..48f6360 Binary files /dev/null and b/assets/oneko/pokemon/jigglypuff.png differ diff --git a/assets/oneko/pokemon/pikachu.png b/assets/oneko/pokemon/pikachu.png new file mode 100644 index 0000000..d6e9c33 Binary files /dev/null and b/assets/oneko/pokemon/pikachu.png differ diff --git a/assets/oneko/pokemon/psyduck.png b/assets/oneko/pokemon/psyduck.png new file mode 100644 index 0000000..6687758 Binary files /dev/null and b/assets/oneko/pokemon/psyduck.png differ diff --git a/assets/oneko/pokemon/skitty.png b/assets/oneko/pokemon/skitty.png new file mode 100644 index 0000000..9734f92 Binary files /dev/null and b/assets/oneko/pokemon/skitty.png differ diff --git a/assets/oneko/pride/bisexual.png b/assets/oneko/pride/bisexual.png new file mode 100644 index 0000000..2e68683 Binary files /dev/null and b/assets/oneko/pride/bisexual.png differ diff --git a/assets/oneko/pride/genderfae.png b/assets/oneko/pride/genderfae.png new file mode 100644 index 0000000..e762240 Binary files /dev/null and b/assets/oneko/pride/genderfae.png differ diff --git a/assets/oneko/pride/genderfluid.png b/assets/oneko/pride/genderfluid.png new file mode 100644 index 0000000..761f27d Binary files /dev/null and b/assets/oneko/pride/genderfluid.png differ diff --git a/assets/oneko/pride/lesbian.png b/assets/oneko/pride/lesbian.png new file mode 100644 index 0000000..25c968f Binary files /dev/null and b/assets/oneko/pride/lesbian.png differ diff --git a/assets/oneko/pride/mlm.png b/assets/oneko/pride/mlm.png new file mode 100644 index 0000000..5cd46aa Binary files /dev/null and b/assets/oneko/pride/mlm.png differ diff --git a/assets/oneko/pride/nb.png b/assets/oneko/pride/nb.png new file mode 100644 index 0000000..2d72e4c Binary files /dev/null and b/assets/oneko/pride/nb.png differ diff --git a/assets/oneko/pride/trans.png b/assets/oneko/pride/trans.png new file mode 100644 index 0000000..6c7ce12 Binary files /dev/null and b/assets/oneko/pride/trans.png differ diff --git a/assets/oneko/things/chocola.png b/assets/oneko/things/chocola.png new file mode 100644 index 0000000..dda629c Binary files /dev/null and b/assets/oneko/things/chocola.png differ diff --git a/assets/oneko/things/coke-bottle.png b/assets/oneko/things/coke-bottle.png new file mode 100644 index 0000000..4634d91 Binary files /dev/null and b/assets/oneko/things/coke-bottle.png differ diff --git a/assets/oneko/things/fire.png b/assets/oneko/things/fire.png new file mode 100644 index 0000000..9656977 Binary files /dev/null and b/assets/oneko/things/fire.png differ diff --git a/assets/oneko/things/marisa.png b/assets/oneko/things/marisa.png new file mode 100644 index 0000000..aeef4a2 Binary files /dev/null and b/assets/oneko/things/marisa.png differ diff --git a/assets/oneko/things/microbot.png b/assets/oneko/things/microbot.png new file mode 100644 index 0000000..064d635 Binary files /dev/null and b/assets/oneko/things/microbot.png differ diff --git a/assets/oneko/things/mini.png b/assets/oneko/things/mini.png new file mode 100644 index 0000000..3a5ef47 Binary files /dev/null and b/assets/oneko/things/mini.png differ diff --git a/assets/oneko/things/robot.png b/assets/oneko/things/robot.png new file mode 100644 index 0000000..93f6ca7 Binary files /dev/null and b/assets/oneko/things/robot.png differ diff --git a/assets/oneko/things/sami.png b/assets/oneko/things/sami.png new file mode 100644 index 0000000..262ad0a Binary files /dev/null and b/assets/oneko/things/sami.png differ diff --git a/assets/oneko/things/star.png b/assets/oneko/things/star.png new file mode 100644 index 0000000..8cd7d7f Binary files /dev/null and b/assets/oneko/things/star.png differ diff --git a/assets/oneko/things/ufo.png b/assets/oneko/things/ufo.png new file mode 100644 index 0000000..5902433 Binary files /dev/null and b/assets/oneko/things/ufo.png differ diff --git a/assets/theme/estrogen.svg b/assets/theme/estrogen.svg new file mode 100644 index 0000000..9c7691b --- /dev/null +++ b/assets/theme/estrogen.svg @@ -0,0 +1,54 @@ + \ No newline at end of file diff --git a/assets/theme/frappe.png b/assets/theme/frappe.png new file mode 100644 index 0000000..a73f301 Binary files /dev/null and b/assets/theme/frappe.png differ diff --git a/assets/theme/latte.png b/assets/theme/latte.png new file mode 100644 index 0000000..210b9c0 Binary files /dev/null and b/assets/theme/latte.png differ diff --git a/assets/theme/macchiato.png b/assets/theme/macchiato.png new file mode 100644 index 0000000..2a3a74e Binary files /dev/null and b/assets/theme/macchiato.png differ diff --git a/assets/theme/mocha.png b/assets/theme/mocha.png new file mode 100644 index 0000000..f3820c6 Binary files /dev/null and b/assets/theme/mocha.png differ diff --git a/css/fonts.css b/css/fonts.css new file mode 100644 index 0000000..649ee3a --- /dev/null +++ b/css/fonts.css @@ -0,0 +1,31 @@ +@font-face { + font-family: 'Comic Code'; + src: url('https://fonts.doughmination.co.uk/ComicCode-Regular_2022-05-24-151938_hsmz.woff2') format('woff2'), + url('https://fonts.doughmination.co.uk/ComicCode-Regular_2022-05-24-151938_hsmz.woff') format('woff'); + font-weight: 400; + font-style: normal; +} + +@font-face { + font-family: 'Comic Code'; + src: url('https://fonts.doughmination.co.uk/ComicCode-Italic_2022-05-24-151939_rdtu.woff2') format('woff2'), + url('https://fonts.doughmination.co.uk/ComicCode-Italic_2022-05-24-151939_rdtu.woff') format('woff'); + font-weight: 400; + font-style: italic; +} + +@font-face { + font-family: 'Comic Code'; + src: url('https://fonts.doughmination.co.uk/ComicCode-Medium_2022-05-24-151941_ugqm.woff2') format('woff2'), + url('https://fonts.doughmination.co.uk/ComicCode-Medium_2022-05-24-151941_ugqm.woff') format('woff'); + font-weight: 500; + font-style: normal; +} + +@font-face { + font-family: 'Comic Code'; + src: url('https://fonts.doughmination.co.uk/ComicCode-Bold_2022-05-24-152309_zqkm.woff2') format('woff2'), + url('https://fonts.doughmination.co.uk/ComicCode-Bold_2022-05-24-152309_zqkm.woff') format('woff'); + font-weight: 700; + font-style: normal; +} \ No newline at end of file diff --git a/css/index.css b/css/index.css index 61b32ea..d605c23 100644 --- a/css/index.css +++ b/css/index.css @@ -1,84 +1,49 @@ -@font-face { - font-family: 'Comic Code'; - src: url('https://fonts.doughmination.co.uk/ComicCode-Regular_2022-05-24-151938_hsmz.woff2') format('woff2'), - url('https://fonts.doughmination.co.uk/ComicCode-Regular_2022-05-24-151938_hsmz.woff') format('woff'); - font-weight: 400; - font-style: normal; -} +@import url("fonts.css"); +@import url(theme-switcher.css); +@import url("picker.css"); +@import url(themes/mocha.css); +@import url(themes/macciato.css); +@import url(themes/frappe.css); +@import url(themes/latte.css); -@font-face { - font-family: 'Comic Code'; - src: url('https://fonts.doughmination.co.uk/ComicCode-Italic_2022-05-24-151939_rdtu.woff2') format('woff2'), - url('https://fonts.doughmination.co.uk/ComicCode-Italic_2022-05-24-151939_rdtu.woff') format('woff'); - font-weight: 400; - font-style: italic; -} -@font-face { - font-family: 'Comic Code'; - src: url('https://fonts.doughmination.co.uk/ComicCode-Medium_2022-05-24-151941_ugqm.woff2') format('woff2'), - url('https://fonts.doughmination.co.uk/ComicCode-Medium_2022-05-24-151941_ugqm.woff') format('woff'); - font-weight: 500; - font-style: normal; -} -@font-face { - font-family: 'Comic Code'; - src: url('https://fonts.doughmination.co.uk/ComicCode-Bold_2022-05-24-152309_zqkm.woff2') format('woff2'), - url('https://fonts.doughmination.co.uk/ComicCode-Bold_2022-05-24-152309_zqkm.woff') format('woff'); - font-weight: 700; - font-style: normal; -} - -:root { - /* https://catppuccin.com/palette/ */ - /* Catppuccin Mocha */ - /* accents */ - --rosewater: #f5e0dc; - --flamingo: #f2cdcd; - --pink: #f5c2e7; - --mauve: #cba6f7; - --red: #f38ba8; - --maroon: #eba0ac; - --peach: #fab387; - --yellow: #f9e2af; - --green: #a6e3a1; - --teal: #94e2d5; - --sky: #89dceb; - --saphire: #74c7ec; - --blue: #89b4fa; /* a lovely new blue passport */ - --lavender: #b4befe; - /* Text */ - --text: #cdd6f4; - --subtext-0: #a6adc8; - --subtext-1: #bac2de; - --overlay-0: #6c7086; - --overlay-1: #7f849c; - --overlay-2: #9399b2; - --surface-0: #313244; - --surface-1: #45475a; - --surface-2: #585b70; - /* Backgrounds */ - --base: #1e1e2e; - --mantle: #181825; - --crust: #11111b; /* Is this the crusty crab? */ -} html, body { - background-color: var(--base); - color: var(--text); - font-family: 'Comic Code', sans-serif; - overflow-x: hidden; - max-width: 100vw; - margin: 0; - min-height: 100vh; + height: 100%; + overflow: hidden; +} + +html { + background: linear-gradient(135deg, var(--base) 0%, var(--mantle) 60%, var(--crust) 100%); } body { - display: flex; - justify-content: center; + font-family: 'Comic Code', sans-serif; + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + height: 100dvh; + margin: 0; + padding: 1.5rem 1rem; + background: linear-gradient(135deg, var(--base) 0%, var(--mantle) 60%, var(--crust) 100%); + color: var(--text); } +/* Estrogen watermark blended into the background */ +body::before { + content: ""; + position: fixed; + inset: 0; + background: url(/assets/theme/estrogen.svg) center / cover no-repeat; + filter: invert(86%) sepia(8%) saturate(900%) hue-rotate(190deg) brightness(105%); + opacity: 0.05; + pointer-events: none; + z-index: 0; +} + + .intro { margin-top: 20vh; color: var(--text); diff --git a/css/picker.css b/css/picker.css new file mode 100644 index 0000000..11e25cb --- /dev/null +++ b/css/picker.css @@ -0,0 +1,65 @@ +/* oneko skin switcher — standalone picker styles. + No framework, no CSS variables required. Restyle freely. */ + +/* https://github.com/doughmination/oneko.clove.is-a.dev/releases/tag/v1.0.0 */ + +#oneko { position: fixed; width: 32px; height: 32px; image-rendering: pixelated; + z-index: 2147483647; pointer-events: none; } + +.cat-picker { + position: fixed; inset: 0; z-index: 2147483646; + display: flex; align-items: center; justify-content: center; + background: rgba(17, 17, 27, 0.72); backdrop-filter: blur(4px); padding: 20px; +} +.cat-picker[hidden] { display: none; } +.cat-picker-panel { + background: #181825; color: #cdd6f4; border: 1px solid #313244; + border-radius: 14px; width: min(720px, 100%); max-height: 82vh; + display: flex; flex-direction: column; font-family: system-ui, sans-serif; + box-shadow: 0 24px 60px rgba(0,0,0,0.5); +} +.cat-picker-head { + display: flex; align-items: center; justify-content: space-between; + padding: 16px 20px; border-bottom: 1px solid #313244; font-weight: 700; +} +.cat-picker-close { + background: none; border: none; color: #a6adc8; font-size: 1.5rem; + line-height: 1; cursor: pointer; padding: 0 4px; +} +.cat-picker-close:hover { color: #f38ba8; } +.cat-grid { overflow-y: auto; padding: 18px 20px; } +.cat-section { margin-bottom: 18px; } +.cat-section-title { + margin: 0 0 10px; font-size: 0.8rem; text-transform: uppercase; + letter-spacing: 0.06em; color: #cba6f7; +} +.cat-section-items { + display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(74px, 1fr)); +} +.cat-option { + background: #1e1e2e; border: 1px solid #313244; border-radius: 10px; + padding: 10px 6px 8px; cursor: pointer; color: inherit; + display: flex; flex-direction: column; align-items: center; gap: 6px; + transition: border-color .12s, transform .1s, background .12s; +} +.cat-option:hover { border-color: #cba6f7; transform: translateY(-2px); background: #313244; } +.cat-option.current { border-color: #cba6f7; background: #313244; box-shadow: inset 0 0 0 1px #cba6f7; } +.cat-option .cat-preview { + width: 32px; height: 32px; image-rendering: pixelated; + background-repeat: no-repeat; border-radius: 4px; +} +.cat-option .cat-name { font-size: 0.68rem; color: #bac2de; text-align: center; line-height: 1.1; word-break: break-word; } +.cat-hint { margin: 0; padding: 12px 20px; border-top: 1px solid #313244; + font-size: 0.78rem; color: #a6adc8; text-align: center; } +.cat-hide-btn { background: none; border: none; color: #f38ba8; cursor: pointer; + font-size: 0.78rem; padding: 0; } +.cat-hide-btn:hover { text-decoration: underline; } +.oneko-show-btn { + position: fixed; left: 14px; bottom: 14px; z-index: 2147483646; + background: #1e1e2e; color: #bac2de; border: 1px solid #313244; border-radius: 999px; + padding: 7px 14px; font-size: 0.8rem; cursor: pointer; opacity: 0.85; + box-shadow: 0 6px 18px rgba(0,0,0,0.35); font-family: system-ui, sans-serif; +} +.oneko-show-btn:hover { opacity: 1; border-color: #cba6f7; color: #cdd6f4; } +kbd { background:#313244; border:1px solid #585b70; border-bottom-width:2px; + border-radius:6px; padding:.05em .45em; font-size:.85em; } diff --git a/css/theme-switcher.css b/css/theme-switcher.css new file mode 100644 index 0000000..a73103e --- /dev/null +++ b/css/theme-switcher.css @@ -0,0 +1,45 @@ +.beta-bar { + position: fixed; + top: 1rem; + right: 1rem; + z-index: 7; + display: flex; + align-items: center; + gap: 0.5rem; +} + +/* cat-collection button icon: the classic oneko idle frame, scaled down + from the 256x128 sprite sheet (idle frame lives at -96px,-96px) */ +.beta-cat-icon { + width: 22px; + height: 22px; + display: block; + background-image: url('/assets/oneko/classics/classic.png'); + background-repeat: no-repeat; + background-size: 176px 88px; + background-position: -66px -66px; + image-rendering: pixelated; +} + +.beta-btn { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 0.35rem; + border-radius: 999px; + background: var(--surface-0); + border: 1px solid var(--surface-1); + cursor: pointer; + transition: border-color 0.15s ease, transform 0.15s ease; +} + +.beta-btn:hover { + border-color: var(--pink); + transform: translateY(2px); +} + +.beta-icon { + width: 22px; + height: 22px; + display: block; +} \ No newline at end of file diff --git a/css/themes/frappe.css b/css/themes/frappe.css new file mode 100644 index 0000000..8b50d3e --- /dev/null +++ b/css/themes/frappe.css @@ -0,0 +1,38 @@ +/* Catppuccin Frappé — official palette + https://github.com/catppuccin/catppuccin (dark) */ +html[data-flavor="frappe"] { + color-scheme: dark; + + /* accents */ + --rosewater: #f2d5cf; + --flamingo: #eebebe; + --pink: #f4b8e4; + --accent-rgb: 244, 184, 228; /* live accent default = theme pink */ + --mauve: #ca9ee6; + --red: #e78284; + --maroon: #ea999c; + --peach: #ef9f76; + --yellow: #e5c890; + --green: #a6d189; + --teal: #81c8be; + --sky: #99d1db; + --saphire: #85c1dc; + --blue: #8caaee; + --lavender: #babbf1; + + /* text */ + --text: #c6d0f5; + --subtext-1: #b5bfe2; + --subtext-0: #a5adce; + --overlay-2: #949cbb; + --overlay-1: #838ba7; + --overlay-0: #737994; + + /* surfaces + backgrounds */ + --surface-2: #626880; + --surface-1: #51576d; + --surface-0: #414559; + --base: #303446; + --mantle: #292c3c; + --crust: #232634; +} \ No newline at end of file diff --git a/css/themes/latte.css b/css/themes/latte.css new file mode 100644 index 0000000..5935512 --- /dev/null +++ b/css/themes/latte.css @@ -0,0 +1,56 @@ +/* Catppuccin Latte — official palette + https://github.com/catppuccin/catppuccin (light) */ +html[data-flavor="latte"] { + color-scheme: light; + + /* accents */ + --rosewater: #dc8a78; + --flamingo: #dd7878; + --pink: #ea76cb; + --accent-rgb: 234, 118, 203; /* live accent default = theme pink */ + --mauve: #8839ef; + --red: #d20f39; + --maroon: #e64553; + --peach: #fe640b; + --yellow: #df8e1d; + --green: #40a02b; + --teal: #179299; + --sky: #04a5e5; + --saphire: #209fb5; + --blue: #1e66f5; + --lavender: #7287fd; + + /* text */ + --text: #4c4f69; + --subtext-1: #5c5f77; + --subtext-0: #6c6f85; + --overlay-2: #7c7f93; + --overlay-1: #8c8fa1; + --overlay-0: #9ca0b0; + + /* surfaces + backgrounds */ + --surface-2: #acb0be; + --surface-1: #bcc0cc; + --surface-0: #ccd0da; + --base: #eff1f5; + --mantle: #e6e9ef; + --crust: #dce0e8; +} + +/* Light-mode readability fixes (icons are white-filtered by default) */ +html[data-flavor="latte"] .icon { + filter: brightness(0); +} + +html[data-flavor="latte"] .link-card:hover .icon { + filter: none; +} + +html[data-flavor="latte"] .badge-icon { + filter: none; +} + +html[data-flavor="latte"] body::before { + filter: invert(14%) sepia(0.2) saturate(300%) hue-rotate(200deg) brightness(1.3); + opacity: 0.05; +} \ No newline at end of file diff --git a/css/themes/macchiato.css b/css/themes/macchiato.css new file mode 100644 index 0000000..b1e3a92 --- /dev/null +++ b/css/themes/macchiato.css @@ -0,0 +1,38 @@ +/* Catppuccin Macchiato — official palette + https://github.com/catppuccin/catppuccin (dark) */ +html[data-flavor="macchiato"] { + color-scheme: dark; + + /* accents */ + --rosewater: #f4dbd6; + --flamingo: #f0c6c6; + --pink: #f5bde6; + --accent-rgb: 245, 189, 230; /* live accent default = theme pink */ + --mauve: #c6a0f6; + --red: #ed8796; + --maroon: #ee99a0; + --peach: #f5a97f; + --yellow: #eed49f; + --green: #a6da95; + --teal: #8bd5ca; + --sky: #91d7e3; + --saphire: #7dc4e4; + --blue: #8aadf4; + --lavender: #b7bdf8; + + /* text */ + --text: #cad3f5; + --subtext-1: #b8c0e0; + --subtext-0: #a5adcb; + --overlay-2: #939ab7; + --overlay-1: #8087a2; + --overlay-0: #6e738d; + + /* surfaces + backgrounds */ + --surface-2: #5b6078; + --surface-1: #494d64; + --surface-0: #363a4f; + --base: #24273a; + --mantle: #1e2030; + --crust: #181926; +} \ No newline at end of file diff --git a/css/themes/mocha.css b/css/themes/mocha.css new file mode 100644 index 0000000..abe8b0a --- /dev/null +++ b/css/themes/mocha.css @@ -0,0 +1,38 @@ +/* Catppuccin Mocha — official palette + https://github.com/catppuccin/catppuccin (dark, default) */ +html[data-flavor="mocha"] { + color-scheme: dark; + + /* accents */ + --rosewater: #f5e0dc; + --flamingo: #f2cdcd; + --pink: #f5c2e7; + --accent-rgb: 245, 194, 231; /* live accent default = theme pink */ + --mauve: #cba6f7; + --red: #f38ba8; + --maroon: #eba0ac; + --peach: #fab387; + --yellow: #f9e2af; + --green: #a6e3a1; + --teal: #94e2d5; + --sky: #89dceb; + --saphire: #74c7ec; + --blue: #89b4fa; + --lavender: #b4befe; + + /* Text */ + --text: #cdd6f4; + --subtext-0: #a6adc8; + --subtext-1: #bac2de; + --overlay-0: #6c7086; + --overlay-1: #7f849c; + --overlay-2: #9399b2; + --surface-0: #313244; + --surface-1: #45475a; + --surface-2: #585b70; + + /* Backgrounds */ + --base: #1e1e2e; + --mantle: #181825; + --crust: #11111b; +} \ No newline at end of file diff --git a/index.html b/index.html index a71c08f..cf9e2ab 100644 --- a/index.html +++ b/index.html @@ -35,6 +35,7 @@ +