diff --git a/layouts/shortcodes/expand.html b/layouts/shortcodes/expand.html
index 0ab3d2a3..db87cf9b 100644
--- a/layouts/shortcodes/expand.html
+++ b/layouts/shortcodes/expand.html
@@ -1,7 +1,7 @@
{{ $id := substr (sha1 .Inner) 0 8 }}
diff --git a/package-lock.json b/package-lock.json
index 9d3a4846..7a869409 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -90,7 +90,6 @@
"integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==",
"dev": true,
"license": "MIT",
- "peer": true,
"engines": {
"node": ">=6.9.0"
}
@@ -152,7 +151,6 @@
"integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@babel/parser": "^7.28.5",
"@babel/types": "^7.28.5",
@@ -170,7 +168,6 @@
"integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@babel/compat-data": "^7.27.2",
"@babel/helper-validator-option": "^7.27.1",
@@ -188,7 +185,6 @@
"integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
"dev": true,
"license": "MIT",
- "peer": true,
"engines": {
"node": ">=6.9.0"
}
@@ -199,7 +195,6 @@
"integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@babel/traverse": "^7.27.1",
"@babel/types": "^7.27.1"
@@ -214,7 +209,6 @@
"integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@babel/helper-module-imports": "^7.27.1",
"@babel/helper-validator-identifier": "^7.27.1",
@@ -233,7 +227,6 @@
"integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
"dev": true,
"license": "MIT",
- "peer": true,
"engines": {
"node": ">=6.9.0"
}
@@ -254,7 +247,6 @@
"integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
"dev": true,
"license": "MIT",
- "peer": true,
"engines": {
"node": ">=6.9.0"
}
@@ -265,7 +257,6 @@
"integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@babel/template": "^7.27.2",
"@babel/types": "^7.28.4"
@@ -280,7 +271,6 @@
"integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@babel/types": "^7.28.5"
},
@@ -297,7 +287,6 @@
"integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@babel/code-frame": "^7.27.1",
"@babel/parser": "^7.27.2",
@@ -313,7 +302,6 @@
"integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@babel/code-frame": "^7.27.1",
"@babel/generator": "^7.28.5",
@@ -333,7 +321,6 @@
"integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@babel/helper-string-parser": "^7.27.1",
"@babel/helper-validator-identifier": "^7.28.5"
@@ -1130,7 +1117,6 @@
"integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.24"
@@ -2174,6 +2160,7 @@
"integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@types/estree": "*",
"@types/json-schema": "*"
@@ -2506,6 +2493,7 @@
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"license": "MIT",
+ "peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -2672,7 +2660,6 @@
"dev": true,
"license": "ISC",
"optional": true,
- "peer": true,
"dependencies": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
@@ -2688,7 +2675,6 @@
"dev": true,
"license": "MIT",
"optional": true,
- "peer": true,
"engines": {
"node": ">=8.6"
},
@@ -2811,7 +2797,6 @@
"dev": true,
"license": "MIT",
"optional": true,
- "peer": true,
"engines": {
"node": ">=8"
},
@@ -2880,6 +2865,7 @@
}
],
"license": "MIT",
+ "peer": true,
"dependencies": {
"baseline-browser-mapping": "^2.8.19",
"caniuse-lite": "^1.0.30001751",
@@ -3290,6 +3276,7 @@
"resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz",
"integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==",
"license": "Apache-2.0",
+ "peer": true,
"dependencies": {
"@chevrotain/cst-dts-gen": "11.0.3",
"@chevrotain/gast": "11.0.3",
@@ -3639,8 +3626,7 @@
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
"dev": true,
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/copy-webpack-plugin": {
"version": "13.0.1",
@@ -3869,6 +3855,7 @@
"resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.1.tgz",
"integrity": "sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==",
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=0.10"
}
@@ -4278,6 +4265,7 @@
"resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
"integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
"license": "ISC",
+ "peer": true,
"engines": {
"node": ">=12"
}
@@ -4715,6 +4703,7 @@
"integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.8.0",
"@eslint-community/regexpp": "^4.12.1",
@@ -4775,6 +4764,7 @@
"integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==",
"dev": true,
"license": "MIT",
+ "peer": true,
"bin": {
"eslint-config-prettier": "bin/cli.js"
},
@@ -5200,6 +5190,7 @@
"integrity": "sha512-k/2rVBRIRzOeom3wI9jBPaSEvoTSQEW4iM0EveBmBBKFxO8mSyyRWtDlfC3VnEfu0avmjrMzy8/ZFPSe6F71Hw==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"escape-html": "^1.0.3",
"sharp": "^0.33.1",
@@ -5493,7 +5484,6 @@
"os": [
"darwin"
],
- "peer": true,
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
@@ -5514,7 +5504,6 @@
"integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
"dev": true,
"license": "MIT",
- "peer": true,
"engines": {
"node": ">=6.9.0"
}
@@ -5765,6 +5754,7 @@
"integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
@@ -6081,7 +6071,6 @@
"dev": true,
"license": "MIT",
"optional": true,
- "peer": true,
"dependencies": {
"binary-extensions": "^2.0.0"
},
@@ -6255,6 +6244,7 @@
"integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==",
"dev": true,
"license": "MIT",
+ "peer": true,
"bin": {
"jiti": "lib/jiti-cli.mjs"
}
@@ -6285,7 +6275,6 @@
"integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
"dev": true,
"license": "MIT",
- "peer": true,
"bin": {
"jsesc": "bin/jsesc"
},
@@ -6327,7 +6316,6 @@
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true,
"license": "MIT",
- "peer": true,
"bin": {
"json5": "lib/cli.js"
},
@@ -6626,7 +6614,6 @@
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
"dev": true,
"license": "ISC",
- "peer": true,
"dependencies": {
"yallist": "^3.0.2"
}
@@ -7838,6 +7825,7 @@
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=12"
},
@@ -7984,6 +7972,7 @@
}
],
"license": "MIT",
+ "peer": true,
"dependencies": {
"nanoid": "^3.3.11",
"picocolors": "^1.1.1",
@@ -8138,6 +8127,7 @@
"integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==",
"dev": true,
"license": "MIT",
+ "peer": true,
"bin": {
"prettier": "bin/prettier.cjs"
},
@@ -8621,6 +8611,7 @@
"integrity": "sha512-elOcIZRTM76dvxNAjqYrucTSI0teAF/L2Lv0s6f6b7FOwcwIuA357bIE871580AjHJuSvLIRUosgV+lIWx6Rgg==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"chokidar": "^4.0.0",
"immutable": "^5.0.2",
@@ -8710,6 +8701,7 @@
"integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
@@ -9557,32 +9549,6 @@
}
}
},
- "node_modules/svgtofont/node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "dev": true,
- "optional": true,
- "peer": true,
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
"node_modules/svgtofont/node_modules/commander": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
@@ -9726,7 +9692,6 @@
"dev": true,
"license": "ISC",
"optional": true,
- "peer": true,
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -9774,7 +9739,6 @@
"dev": true,
"license": "MIT",
"optional": true,
- "peer": true,
"engines": {
"node": ">=8.6"
},
@@ -9789,7 +9753,6 @@
"dev": true,
"license": "MIT",
"optional": true,
- "peer": true,
"dependencies": {
"picomatch": "^2.2.1"
},
@@ -10417,6 +10380,7 @@
"integrity": "sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@types/eslint-scope": "^3.7.7",
"@types/estree": "^1.0.8",
@@ -10466,6 +10430,7 @@
"integrity": "sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@discoveryjs/json-ext": "^0.6.1",
"@webpack-cli/configtest": "^3.0.1",
@@ -10856,8 +10821,7 @@
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
"dev": true,
- "license": "ISC",
- "peer": true
+ "license": "ISC"
},
"node_modules/yaml": {
"version": "2.8.1",
diff --git a/src/static/custom.css b/src/static/custom.css
index 42bdbbe3..466b7c92 100644
--- a/src/static/custom.css
+++ b/src/static/custom.css
@@ -4,9 +4,9 @@
--ci-color-secondary: #4ec1ec;
--ci-color-tertiary: #3880ad;
--ci-color-text: #40424a;
- --ci-color-success: #006600;
+ --ci-color-success: #009688;
+ --ci-color-warning: #ffb300;
--ci-color-error1: #cc3333;
- --ci-color-error2: #f52222;
--ci-lightest-of-blues: #eaf4ff;
--ci-color-white: #ffffff;
@@ -18,6 +18,32 @@
--custom-header-margin: 2rem;
--custom-link-color: var(--ci-color-tertiary);
--custom-paper-color: #ffffff;
+
+ /* Taxonomy Design System - Using CI Colors */
+ --taxonomy-tag-color: var(--ci-color-secondary);
+ --taxonomy-category-color: var(--ci-color-success);
+ --taxonomy-feature-color: var(--ci-color-warning);
+
+ /* Taxonomy Spacing System */
+ --taxonomy-spacing-xs: 0.25rem;
+ --taxonomy-spacing-sm: 0.5rem;
+ --taxonomy-spacing-md: 1rem;
+ --taxonomy-spacing-lg: 1.5rem;
+ --taxonomy-spacing-xl: 2rem;
+
+ /* Taxonomy Border Radius */
+ --taxonomy-radius-md: 3px;
+ --taxonomy-radius-full: 9999px;
+
+ /* Taxonomy Transitions */
+ --taxonomy-transition-fast: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
+ --taxonomy-transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
+
+ /* Taxonomy Shadows */
+ --taxonomy-shadow-xs: 0 1px 2px rgba(64, 66, 74, 0.1);
+ --taxonomy-shadow-sm: 0 2px 4px rgba(64, 66, 74, 0.12);
+ --taxonomy-shadow-md: 0 2px 20px -10px rgba(64, 66, 74, 0.2);
+ --taxonomy-shadow-lg: 0 4px 24px -12px rgba(64, 66, 74, 0.25);
}
/* Light mode (modify both object at the same time) */
@@ -31,6 +57,25 @@
--custom-paper-color: var(--ci-color-white);
--footer-background: var(--ci-color-primary);
--header-background: var(--ci-color-primary);
+
+ /* Taxonomy Light Mode Colors */
+ --taxonomy-bg-tag: rgba(78, 193, 236, 0.1);
+ --taxonomy-bg-category: rgba(0, 150, 136, 0.1);
+ --taxonomy-bg-feature: rgba(255, 179, 0, 0.1);
+ --taxonomy-bg-card: var(--custom-paper-color);
+ --taxonomy-text-primary: var(--body-font-color);
+ --taxonomy-text-secondary: #283340;
+ --taxonomy-text-muted: #6c757d;
+ --taxonomy-text-light: var(--ci-color-white);
+ --taxonomy-border-tag: rgba(78, 193, 236, 0.25);
+ --taxonomy-border-category: rgba(0, 150, 136, 0.25);
+ --taxonomy-border-feature: rgba(255, 179, 0, 0.25);
+ --taxonomy-border-light: rgba(64, 66, 74, 0.08);
+ --taxonomy-border-accent: var(--ci-color-secondary);
+ --taxonomy-border-card: var(--custom-paper-color);
+ --taxonomy-heading-primary: var(--custom-color-heading-color);
+ --taxonomy-link-color: var(--custom-link-color);
+ --taxonomy-meta-filter-brightness: 0.96;
}
@media (prefers-color-scheme: light) {
@@ -44,7 +89,26 @@
--custom-paper-color: var(--ci-color-white);
--footer-background: var(--ci-color-primary);
--header-background: var(--ci-color-primary);
- }
+
+ /* Taxonomy Light Mode Colors */
+ --taxonomy-bg-tag: rgba(78, 193, 236, 0.1);
+ --taxonomy-bg-category: rgba(0, 150, 136, 0.1);
+ --taxonomy-bg-feature: rgba(255, 179, 0, 0.1);
+ --taxonomy-bg-card: var(--custom-paper-color);
+ --taxonomy-text-primary: var(--body-font-color);
+ --taxonomy-text-secondary: #283340;
+ --taxonomy-text-muted: #6c757d;
+ --taxonomy-text-light: var(--ci-color-white);
+ --taxonomy-border-tag: rgba(78, 193, 236, 0.25);
+ --taxonomy-border-category: rgba(0, 150, 136, 0.25);
+ --taxonomy-border-feature: rgba(255, 179, 0, 0.25);
+ --taxonomy-border-light: rgba(64, 66, 74, 0.08);
+ --taxonomy-border-accent: var(--ci-color-secondary);
+ --taxonomy-border-card: var(--custom-paper-color);
+ --taxonomy-heading-primary: var(--custom-color-heading-color);
+ --taxonomy-link-color: var(--custom-link-color);
+ --taxonomy-meta-filter-brightness: 0.96;
+}
}
@@ -56,6 +120,30 @@
--custom-color-heading-color: var(--ci-color-white);
--custom-paper-color: #181a1b;
--header-background: var(--ci-color-primary);
+
+ /* Taxonomy Dark Mode Colors */
+ --taxonomy-bg-tag: rgba(78, 193, 236, 0.15);
+ --taxonomy-bg-category: rgba(0, 150, 136, 0.15);
+ --taxonomy-bg-feature: rgba(255, 179, 0, 0.15);
+ --taxonomy-bg-card: var(--custom-paper-color);
+ --taxonomy-text-primary: #e0e0e0;
+ --taxonomy-text-secondary: #b0b0b0;
+ --taxonomy-text-muted: #888888;
+ --taxonomy-text-light: var(--ci-color-white);
+ --taxonomy-border-tag: rgba(78, 193, 236, 0.3);
+ --taxonomy-border-category: rgba(0, 150, 136, 0.3);
+ --taxonomy-border-feature: rgba(255, 179, 0, 0.3);
+ --taxonomy-border-light: rgba(255, 255, 255, 0.05);
+ --taxonomy-border-accent: var(--ci-color-secondary);
+ --taxonomy-border-card: rgba(255, 255, 255, 0.1);
+ --taxonomy-heading-primary: var(--custom-color-heading-color);
+ --taxonomy-link-color: var(--ci-color-secondary);
+ --taxonomy-meta-filter-brightness: 1.2;
+ --taxonomy-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.3);
+ --taxonomy-shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.4);
+ --taxonomy-shadow-md: 0 2px 20px -10px rgba(0, 0, 0, 0.5);
+ --taxonomy-shadow-lg: 0 4px 24px -12px rgba(0, 0, 0, 0.6);
+
/* Fix the $$ highlighting */
.chroma .err {
color: inherit;
@@ -71,6 +159,30 @@
--custom-color-heading-color: var(--ci-color-white);
--custom-paper-color: #181a1b;
--header-background: var(--ci-color-primary);
+
+ /* Taxonomy Dark Mode Colors */
+ --taxonomy-bg-tag: rgba(78, 193, 236, 0.15);
+ --taxonomy-bg-category: rgba(0, 150, 136, 0.15);
+ --taxonomy-bg-feature: rgba(255, 179, 0, 0.15);
+ --taxonomy-bg-card: var(--custom-paper-color);
+ --taxonomy-text-primary: #e0e0e0;
+ --taxonomy-text-secondary: #b0b0b0;
+ --taxonomy-text-muted: #888888;
+ --taxonomy-text-light: var(--ci-color-white);
+ --taxonomy-border-tag: rgba(78, 193, 236, 0.3);
+ --taxonomy-border-category: rgba(0, 150, 136, 0.3);
+ --taxonomy-border-feature: rgba(255, 179, 0, 0.3);
+ --taxonomy-border-light: rgba(255, 255, 255, 0.05);
+ --taxonomy-border-accent: var(--ci-color-secondary);
+ --taxonomy-border-card: rgba(255, 255, 255, 0.1);
+ --taxonomy-heading-primary: var(--custom-color-heading-color);
+ --taxonomy-link-color: var(--ci-color-secondary);
+ --taxonomy-meta-filter-brightness: 1.2;
+ --taxonomy-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.3);
+ --taxonomy-shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.4);
+ --taxonomy-shadow-md: 0 2px 20px -10px rgba(0, 0, 0, 0.5);
+ --taxonomy-shadow-lg: 0 4px 24px -12px rgba(0, 0, 0, 0.6);
+
/* Fix the $$ highlighting */
.chroma .err {
color: inherit;
@@ -291,6 +403,686 @@ h6 {
color: #888;
}
+/* ============================================
+ TAXONOMY DISPLAY SYSTEM
+ Professional UI/UX design with CI color integration
+ ============================================ */
+
+/* Taxonomy Badges - Interactive, accessible, beautiful */
+.taxonomy-badge {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ padding: var(--taxonomy-spacing-sm) 0.875rem;
+ border-radius: var(--taxonomy-radius-full);
+ font-size: 0.8125rem;
+ font-weight: 600;
+ line-height: 1.2;
+ text-decoration: none;
+ transition: var(--taxonomy-transition);
+ border: 1.5px solid;
+ position: relative;
+ overflow: hidden;
+ white-space: nowrap;
+ letter-spacing: 0.01em;
+ cursor: pointer;
+ user-select: none;
+ font-family: inherit;
+}
+
+.taxonomy-badge::before {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: -100%;
+ width: 100%;
+ height: 100%;
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
+ transition: left 0.5s ease;
+}
+
+.taxonomy-badge:hover::before {
+ left: 100%;
+}
+
+.taxonomy-badge:hover {
+ transform: translateY(-2px) scale(1.02);
+ box-shadow: var(--taxonomy-shadow-md);
+}
+
+.taxonomy-badge:active {
+ transform: translateY(0) scale(0.98);
+}
+
+.taxonomy-badge:focus {
+ outline: 2px solid var(--taxonomy-border-accent);
+ outline-offset: 2px;
+}
+
+.taxonomy-badge-tag {
+ color: var(--taxonomy-tag-color);
+ background: var(--taxonomy-bg-tag);
+ border-color: var(--taxonomy-border-tag);
+ box-shadow: var(--taxonomy-shadow-xs);
+}
+
+.taxonomy-badge-tag:hover {
+ background: var(--taxonomy-tag-color);
+ color: var(--taxonomy-text-light);
+ border-color: var(--taxonomy-tag-color);
+ box-shadow: 0 4px 12px rgba(78, 193, 236, 0.4);
+}
+
+.taxonomy-badge-category {
+ color: var(--taxonomy-category-color);
+ background: var(--taxonomy-bg-category);
+ border-color: var(--taxonomy-border-category);
+ box-shadow: var(--taxonomy-shadow-xs);
+}
+
+.taxonomy-badge-category:hover {
+ background: var(--taxonomy-category-color);
+ color: var(--taxonomy-text-light);
+ border-color: var(--taxonomy-category-color);
+ box-shadow: 0 4px 12px rgba(0, 150, 136, 0.4);
+}
+
+.taxonomy-badge-feature {
+ color: var(--taxonomy-feature-color);
+ background: var(--taxonomy-bg-feature);
+ border-color: var(--taxonomy-border-feature);
+ box-shadow: var(--taxonomy-shadow-xs);
+}
+
+.taxonomy-badge-feature:hover {
+ background: var(--taxonomy-feature-color);
+ color: var(--taxonomy-text-light);
+ border-color: var(--taxonomy-feature-color);
+ box-shadow: 0 4px 12px rgba(255, 179, 0, 0.4);
+}
+
+/* Taxonomy Meta Container - Matches .gdoc-markdown styling */
+.geekdoc-taxonomy-meta {
+ margin: var(--taxonomy-spacing-xl) 0;
+ padding: 0.5rem 2rem 0.5rem 2rem;
+ background-color: color-mix(in srgb, var(--custom-paper-color) 95%, white 5%);
+ color: var(--body-font-color);
+ border-radius: var(--custom-border-radius);
+ border: 1px solid var(--custom-paper-color);
+ box-shadow: 0 2px 20px -5px rgba(64, 66, 74, 0.2);
+ position: relative;
+ overflow: hidden;
+ filter: brightness(var(--taxonomy-meta-filter-brightness));
+}
+
+.geekdoc-taxonomy-meta::before {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 4px;
+ height: 100%;
+ background: var(--taxonomy-border-accent);
+ z-index: 1;
+}
+
+.geekdoc-taxonomy-meta > div {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 1.25rem;
+ align-items: flex-start;
+ position: relative;
+ z-index: 2;
+}
+
+.geekdoc-taxonomy-meta strong {
+ color: var(--taxonomy-heading-primary);
+ font-size: 0.875rem;
+ font-weight: 700;
+ letter-spacing: 0.02em;
+ text-transform: uppercase;
+ min-width: fit-content;
+ display: inline-block;
+ margin-right: var(--taxonomy-spacing-sm);
+}
+
+.taxonomy-group {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ gap: 0.75rem;
+ flex: 1;
+ min-width: 200px;
+}
+
+.taxonomy-badges {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.625rem;
+ align-items: center;
+}
+
+/* Taxonomy Links Container */
+.taxonomy-links-container {
+ margin: var(--taxonomy-spacing-xl) 0;
+ padding: 0 2rem 0.5rem 2rem;
+ background-color: color-mix(in srgb, var(--custom-paper-color) 95%, white 5%);
+ color: var(--taxonomy-text-primary);
+ border-radius: var(--custom-border-radius);
+ border: 1px solid var(--custom-paper-color);
+ box-shadow: 0 2px 20px -5px rgba(64, 66, 74, 0.2);
+ position: relative;
+ overflow: hidden;
+ filter: brightness(var(--taxonomy-meta-filter-brightness));
+}
+
+.taxonomy-links-container::before {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 4px;
+ height: 100%;
+ background: var(--taxonomy-heading-primary);
+ z-index: 1;
+}
+
+.taxonomy-links-container p {
+ color: var(--taxonomy-heading-primary);
+ font-size: 0.9375rem;
+ margin-bottom: var(--taxonomy-spacing-md);
+ font-weight: 700;
+ letter-spacing: 0.01em;
+ position: relative;
+ z-index: 2;
+}
+
+.taxonomy-links {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.875rem;
+ align-items: center;
+ position: relative;
+ z-index: 2;
+}
+
+.taxonomy-link {
+ text-decoration: none;
+ padding: 0.625rem 1.25rem;
+ border-radius: var(--custom-border-radius);
+ font-size: 0.875rem;
+ font-weight: 600;
+ border: 1.5px solid;
+ transition: var(--taxonomy-transition);
+ display: inline-flex;
+ align-items: center;
+ gap: var(--taxonomy-spacing-sm);
+ position: relative;
+ overflow: hidden;
+ letter-spacing: 0.01em;
+ font-family: inherit;
+ color: inherit;
+}
+
+.taxonomy-link::before {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: -100%;
+ width: 100%;
+ height: 100%;
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);
+ transition: left 0.5s ease;
+}
+
+:root[color-theme="dark"] .taxonomy-link::before {
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.08), transparent);
+}
+
+@media (prefers-color-scheme: dark) {
+ .taxonomy-link::before {
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.08), transparent);
+ }
+}
+
+.taxonomy-link:hover::before {
+ left: 100%;
+}
+
+.taxonomy-link:hover {
+ transform: translateY(-2px);
+ box-shadow: 0 2px 20px -10px rgba(64, 66, 74, 0.2);
+}
+
+.taxonomy-link:focus {
+ outline: 2px solid var(--taxonomy-border-accent);
+ outline-offset: 2px;
+}
+
+.taxonomy-link-tags {
+ color: var(--taxonomy-tag-color);
+ background-color: var(--taxonomy-bg-tag);
+ border-color: var(--taxonomy-border-tag);
+ box-shadow: 0 1px 2px rgba(64, 66, 74, 0.1);
+}
+
+.taxonomy-link-tags:hover {
+ background-color: var(--taxonomy-tag-color);
+ color: var(--taxonomy-text-light);
+ border-color: var(--taxonomy-tag-color);
+ box-shadow: 0 2px 20px -10px rgba(78, 193, 236, 0.3);
+}
+
+.taxonomy-link-categories {
+ color: var(--taxonomy-category-color);
+ background-color: var(--taxonomy-bg-category);
+ border-color: var(--taxonomy-border-category);
+ box-shadow: 0 1px 2px rgba(64, 66, 74, 0.1);
+}
+
+.taxonomy-link-categories:hover {
+ background-color: var(--taxonomy-category-color);
+ color: var(--taxonomy-text-light);
+ border-color: var(--taxonomy-category-color);
+ box-shadow: 0 2px 20px -10px rgba(0, 150, 136, 0.3);
+}
+
+.taxonomy-link-features {
+ color: var(--taxonomy-feature-color);
+ background-color: var(--taxonomy-bg-feature);
+ border-color: var(--taxonomy-border-feature);
+ box-shadow: 0 1px 2px rgba(64, 66, 74, 0.1);
+}
+
+.taxonomy-link-features:hover {
+ background-color: var(--taxonomy-feature-color);
+ color: var(--taxonomy-text-light);
+ border-color: var(--taxonomy-feature-color);
+ box-shadow: 0 2px 20px -10px rgba(255, 179, 0, 0.3);
+}
+
+.taxonomy-link-readmore {
+ color: var(--taxonomy-tag-color);
+ background-color: var(--taxonomy-bg-tag);
+ border-color: var(--taxonomy-border-tag);
+ box-shadow: 0 1px 2px rgba(64, 66, 74, 0.1);
+}
+
+.taxonomy-link-readmore:hover {
+ background-color: var(--taxonomy-tag-color);
+ color: var(--taxonomy-text-light);
+ border-color: var(--taxonomy-tag-color);
+ box-shadow: 0 2px 20px -10px rgba(78, 193, 236, 0.3);
+}
+
+.taxonomy-link-readmore .gdoc-icon {
+ width: 18px;
+ height: 18px;
+ fill: currentColor;
+ transition: transform var(--taxonomy-transition-fast);
+}
+
+.taxonomy-link-readmore:hover .gdoc-icon {
+ transform: translateX(2px);
+}
+
+/* Read More Link Container */
+.gdoc-post__readmore {
+ margin-top: var(--taxonomy-spacing-md);
+ padding-top: var(--taxonomy-spacing-md);
+}
+
+.gdoc-post__readmore .taxonomy-link-readmore {
+ margin-top: 0;
+}
+
+/* Taxonomy Content Cards */
+.taxonomy-content-card {
+ padding: 1rem 2rem 1rem 2rem;
+ background-color: var(--taxonomy-bg-card);
+ color: var(--taxonomy-text-primary);
+ border-radius: var(--custom-border-radius);
+ border: 1px solid var(--custom-paper-color);
+ border-left: 4px solid var(--taxonomy-border-accent);
+ transition: var(--taxonomy-transition);
+ box-shadow: 0 2px 20px -10px rgba(64, 66, 74, 0.2);
+ position: relative;
+ overflow: hidden;
+ margin-bottom: var(--taxonomy-spacing-lg);
+}
+
+.taxonomy-content-card::before {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 4px;
+ height: 100%;
+ background: var(--taxonomy-border-accent);
+ z-index: 1;
+}
+
+.taxonomy-content-card:hover {
+ border-color: var(--taxonomy-border-accent);
+ box-shadow: 0 4px 24px -12px rgba(64, 66, 74, 0.3);
+}
+
+.taxonomy-content-card h3 {
+ margin: 0 0 0.75rem 0;
+ line-height: 1.3;
+ position: relative;
+ z-index: 2;
+}
+
+.taxonomy-content-card h3 a {
+ color: var(--taxonomy-heading-primary);
+ text-decoration: none;
+ font-size: 1.125rem;
+ font-weight: 700;
+ transition: var(--taxonomy-transition);
+ display: inline-block;
+ letter-spacing: -0.01em;
+}
+
+.taxonomy-content-card h3 a:hover {
+ color: var(--taxonomy-link-color);
+ transform: translateX(2px);
+}
+
+.taxonomy-content-card p {
+ color: var(--taxonomy-text-primary);
+ font-size: 0.9375rem;
+ margin: 0.75rem 0 0 0;
+ line-height: 1.6;
+ letter-spacing: 0.01em;
+ position: relative;
+ z-index: 2;
+}
+
+.taxonomy-content-card .badges {
+ margin-top: var(--taxonomy-spacing-md);
+ display: flex;
+ gap: var(--taxonomy-spacing-sm);
+ flex-wrap: wrap;
+ align-items: center;
+ position: relative;
+ z-index: 2;
+}
+
+.taxonomy-content-card .badge-small {
+ font-size: 0.75rem;
+ padding: 0.375rem 0.625rem;
+ border-radius: var(--taxonomy-radius-full);
+ font-weight: 600;
+ letter-spacing: 0.01em;
+ display: inline-block;
+}
+
+.badge-small-tag {
+ color: var(--taxonomy-tag-color);
+ background: var(--taxonomy-bg-tag);
+ border: 1px solid var(--taxonomy-border-tag);
+}
+
+.badge-small-category {
+ color: var(--taxonomy-category-color);
+ background: var(--taxonomy-bg-category);
+ border: 1px solid var(--taxonomy-border-category);
+}
+
+/* Taxonomy Terms Grid */
+.taxonomy-terms-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
+ gap: 1.25rem;
+ margin-top: var(--taxonomy-spacing-xl);
+}
+
+.taxonomy-term-card {
+ display: block;
+ padding: 1rem 2rem 1rem 2rem;
+ background-color: var(--taxonomy-bg-card);
+ color: var(--taxonomy-text-primary);
+ border-radius: var(--custom-border-radius);
+ border: 1px solid var(--custom-paper-color);
+ border-left: 4px solid var(--taxonomy-border-accent);
+ text-decoration: none;
+ transition: var(--taxonomy-transition);
+ box-shadow: 0 2px 20px -10px rgba(64, 66, 74, 0.2);
+ position: relative;
+ overflow: hidden;
+}
+
+.taxonomy-term-card::before {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 4px;
+ height: 100%;
+ background: var(--taxonomy-border-accent);
+ z-index: 1;
+}
+
+.taxonomy-term-card:hover {
+ border-color: var(--taxonomy-border-accent);
+ transform: translateY(-2px);
+ box-shadow: 0 4px 24px -12px rgba(64, 66, 74, 0.3);
+}
+
+.taxonomy-term-card-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: flex-start;
+ margin-bottom: 0.75rem;
+ gap: var(--taxonomy-spacing-md);
+ position: relative;
+ z-index: 2;
+}
+
+.taxonomy-term-card h3 {
+ margin: 0;
+ color: var(--taxonomy-heading-primary);
+ font-size: 1.0625rem;
+ font-weight: 700;
+ line-height: 1.3;
+ letter-spacing: -0.01em;
+ flex: 1;
+ position: relative;
+ z-index: 2;
+}
+
+.taxonomy-term-card-count {
+ color: var(--taxonomy-tag-color);
+ font-size: 0.8125rem;
+ font-weight: 700;
+ background: var(--taxonomy-bg-tag);
+ padding: 0.375rem 0.75rem;
+ border-radius: var(--taxonomy-radius-full);
+ border: 1px solid var(--taxonomy-border-tag);
+ white-space: nowrap;
+ box-shadow: 0 1px 2px rgba(64, 66, 74, 0.1);
+ flex-shrink: 0;
+ position: relative;
+ z-index: 2;
+}
+
+.taxonomy-term-card p {
+ margin: 0;
+ color: var(--taxonomy-text-muted);
+ font-size: 0.875rem;
+ line-height: 1.5;
+ letter-spacing: 0.01em;
+ position: relative;
+ z-index: 2;
+}
+
+/* Taxonomy Section Dividers */
+.taxonomy-section-divider {
+ margin-top: 3rem;
+ padding-top: var(--taxonomy-spacing-xl);
+ border-top: 2px solid var(--taxonomy-border-light);
+ position: relative;
+}
+
+.taxonomy-section-divider::before {
+ content: "";
+ position: absolute;
+ top: -2px;
+ left: 0;
+ width: 60px;
+ height: 2px;
+ background: linear-gradient(90deg, var(--taxonomy-border-accent) 0%, transparent 100%);
+}
+
+.taxonomy-section-divider h3 {
+ color: var(--taxonomy-heading-primary);
+ font-size: 1.125rem;
+ margin-bottom: 1.25rem;
+ font-weight: 700;
+ letter-spacing: -0.01em;
+}
+
+/* Taxonomy Empty State */
+.taxonomy-empty-state {
+ padding: 3rem var(--taxonomy-spacing-xl);
+ text-align: center;
+ color: var(--taxonomy-text-primary);
+ background-color: var(--taxonomy-bg-card);
+ border-radius: var(--custom-border-radius);
+ border: 1px solid var(--custom-paper-color);
+ box-shadow: 0 2px 20px -10px rgba(64, 66, 74, 0.2);
+}
+
+.taxonomy-empty-state p {
+ font-size: 1.125rem;
+ margin-bottom: var(--taxonomy-spacing-lg);
+ color: var(--taxonomy-text-secondary);
+ font-weight: 500;
+}
+
+.taxonomy-empty-state a {
+ color: var(--taxonomy-link-color);
+ text-decoration: none;
+ font-weight: 600;
+ transition: var(--taxonomy-transition);
+ display: inline-block;
+ padding: var(--taxonomy-spacing-sm) var(--taxonomy-spacing-md);
+ border-radius: var(--taxonomy-radius-md);
+ border: 1.5px solid var(--taxonomy-border-tag);
+ background-color: var(--taxonomy-bg-tag);
+}
+
+.taxonomy-empty-state a:hover {
+ background-color: var(--taxonomy-tag-color);
+ color: var(--taxonomy-text-light);
+ border-color: var(--taxonomy-tag-color);
+ transform: translateY(-2px);
+ box-shadow: var(--taxonomy-shadow-sm);
+}
+
+/* Responsive Design */
+@media (max-width: 768px) {
+ .taxonomy-terms-grid {
+ grid-template-columns: 1fr;
+ gap: var(--taxonomy-spacing-md);
+ }
+
+ .geekdoc-taxonomy-meta,
+ .taxonomy-links-container,
+ .taxonomy-content-card,
+ .taxonomy-term-card {
+ padding: 2rem 1.25rem;
+ }
+
+ .geekdoc-taxonomy-meta > div {
+ flex-direction: column;
+ gap: var(--taxonomy-spacing-md);
+ }
+
+ .geekdoc-taxonomy-meta .taxonomy-group {
+ flex-direction: column;
+ align-items: flex-start;
+ gap: 0.75rem;
+ }
+
+ .geekdoc-taxonomy-meta strong {
+ margin-bottom: var(--taxonomy-spacing-sm);
+ }
+
+ .taxonomy-links {
+ flex-direction: column;
+ gap: 0.75rem;
+ }
+
+ .taxonomy-link {
+ width: 100%;
+ justify-content: center;
+ text-align: center;
+ }
+
+ .taxonomy-term-card-header {
+ flex-direction: column;
+ align-items: flex-start;
+ gap: 0.75rem;
+ }
+}
+
+@media (max-width: 480px) {
+ .taxonomy-badge {
+ font-size: 0.75rem;
+ padding: 0.4375rem 0.75rem;
+ }
+
+ .geekdoc-taxonomy-meta,
+ .taxonomy-links-container,
+ .taxonomy-content-card,
+ .taxonomy-term-card {
+ padding: var(--taxonomy-spacing-md);
+ }
+}
+
+/* Accessibility Enhancements */
+@media (prefers-reduced-motion: reduce) {
+ .taxonomy-badge,
+ .taxonomy-link,
+ .taxonomy-content-card,
+ .taxonomy-term-card {
+ transition: none;
+ }
+
+ .taxonomy-badge:hover,
+ .taxonomy-link:hover,
+ .taxonomy-content-card:hover,
+ .taxonomy-term-card:hover {
+ transform: none;
+ }
+
+ .taxonomy-badge::before,
+ .taxonomy-link::before {
+ display: none;
+ }
+}
+
+@media (prefers-contrast: high) {
+ .taxonomy-badge,
+ .taxonomy-link {
+ border-width: 2px;
+ }
+
+ .geekdoc-taxonomy-meta,
+ .taxonomy-content-card,
+ .taxonomy-term-card {
+ border-left-width: 5px;
+ }
+}
+
+.taxonomy-badge:focus-visible,
+.taxonomy-link:focus-visible {
+ outline: 3px solid var(--taxonomy-border-accent);
+ outline-offset: 3px;
+}
+
/* Customize the footer */
.gdoc-footer {
display: flex;
@@ -340,3 +1132,366 @@ h6 {
}
}
+
+/* ============================================
+ TAXONOMY TERM CARDS (Features/Tags/Categories)
+ Professional card-based layout for taxonomy term pages
+ Following UI/UX best practices: accessibility, visual hierarchy, interaction design
+ ============================================ */
+
+.taxonomy-terms-page {
+ max-width: 100%;
+}
+
+/* Page Header */
+.taxonomy-terms-header {
+ margin-bottom: var(--taxonomy-spacing-xl);
+ padding-bottom: var(--taxonomy-spacing-lg);
+ border-bottom: 2px solid rgba(64, 66, 74, 0.1);
+}
+
+.taxonomy-terms-title {
+ font-size: 2rem;
+ font-weight: 700;
+ line-height: 1.2;
+ margin: 0 0 var(--taxonomy-spacing-md) 0;
+ color: var(--taxonomy-heading-primary);
+}
+
+.taxonomy-terms-description {
+ font-size: 1.125rem;
+ line-height: 1.6;
+ color: var(--taxonomy-text-secondary);
+ margin: 0 0 var(--taxonomy-spacing-sm) 0;
+ max-width: 65ch;
+}
+
+.taxonomy-terms-count {
+ font-size: 0.9375rem;
+ color: var(--taxonomy-text-secondary);
+ margin: 0;
+ font-weight: 500;
+}
+
+/* Grid Layout */
+.taxonomy-terms-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
+ gap: var(--taxonomy-spacing-lg);
+ margin: var(--taxonomy-spacing-xl) 0;
+}
+
+/* Card Container */
+.taxonomy-term-card {
+ background: var(--taxonomy-bg-card);
+ border: 1.5px solid var(--taxonomy-border-card);
+ border-radius: var(--taxonomy-radius-md);
+ box-shadow: var(--taxonomy-shadow-sm);
+ display: flex;
+ flex-direction: column;
+ transition: var(--taxonomy-transition);
+ overflow: hidden;
+ position: relative;
+ height: 100%;
+ min-height: 200px;
+}
+
+/* Accent Border Indicator */
+.taxonomy-term-card::before {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 4px;
+ height: 100%;
+ background: var(--taxonomy-border-accent);
+ opacity: 0;
+ transition: var(--taxonomy-transition);
+ z-index: 1;
+}
+
+/* Card Hover States */
+.taxonomy-term-card:hover {
+ transform: translateY(-4px);
+ box-shadow: var(--taxonomy-shadow-lg);
+ border-color: var(--taxonomy-border-accent);
+}
+
+.taxonomy-term-card:hover::before {
+ opacity: 1;
+}
+
+/* Focus States for Accessibility */
+.taxonomy-term-card:focus-within {
+ outline: 2px solid var(--taxonomy-border-accent);
+ outline-offset: 2px;
+}
+
+/* Entire Card is Clickable Link */
+.taxonomy-term-card__link {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+ text-decoration: none;
+ color: inherit;
+ transition: var(--taxonomy-transition-fast);
+}
+
+.taxonomy-term-card__link:focus {
+ outline: none;
+}
+
+.taxonomy-term-card__link:focus-visible {
+ outline: 2px solid var(--taxonomy-border-accent);
+ outline-offset: -2px;
+ border-radius: var(--taxonomy-radius-md);
+}
+
+/* Card Header */
+.taxonomy-term-card__header {
+ padding: var(--taxonomy-spacing-md) var(--taxonomy-spacing-md) var(--taxonomy-spacing-sm);
+ border-bottom: 1px solid rgba(64, 66, 74, 0.08);
+ position: relative;
+ z-index: 2;
+}
+
+.taxonomy-term-card__title {
+ margin: 0;
+ font-size: 1.375rem;
+ font-weight: 700;
+ line-height: 1.3;
+ color: var(--taxonomy-heading-primary);
+ transition: var(--taxonomy-transition-fast);
+}
+
+.taxonomy-term-card:hover .taxonomy-term-card__title {
+ color: var(--taxonomy-border-accent);
+}
+
+/* Card Body */
+.taxonomy-term-card__body {
+ padding: var(--taxonomy-spacing-md);
+ flex: 1;
+ display: flex;
+ align-items: flex-start;
+ position: relative;
+ z-index: 2;
+}
+
+.taxonomy-term-card__description {
+ margin: 0;
+ color: var(--taxonomy-text-secondary);
+ font-size: 0.9375rem;
+ line-height: 1.6;
+ display: -webkit-box;
+ -webkit-line-clamp: 3;
+ line-clamp: 3;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+.taxonomy-term-card__description--empty {
+ color: var(--taxonomy-text-secondary);
+ font-style: italic;
+ opacity: 0.7;
+}
+
+/* Card Footer */
+.taxonomy-term-card__footer {
+ padding: var(--taxonomy-spacing-md);
+ border-top: 1px solid rgba(64, 66, 74, 0.08);
+ background: linear-gradient(to bottom, rgba(64, 66, 74, 0.02), rgba(64, 66, 74, 0.04));
+ position: relative;
+ z-index: 2;
+}
+
+.taxonomy-term-card__meta {
+ display: flex;
+ flex-direction: column;
+ gap: var(--taxonomy-spacing-sm);
+ font-size: 0.875rem;
+}
+
+.taxonomy-term-card__count,
+.taxonomy-term-card__latest {
+ display: flex;
+ align-items: center;
+ gap: 0.625rem;
+ color: var(--taxonomy-text-secondary);
+ line-height: 1.4;
+}
+
+.taxonomy-term-card__count .gdoc-icon,
+.taxonomy-term-card__latest .gdoc-icon {
+ width: 18px;
+ height: 18px;
+ fill: var(--taxonomy-text-secondary);
+ flex-shrink: 0;
+ opacity: 0.8;
+}
+
+.taxonomy-term-card__count-text {
+ display: inline-flex;
+ align-items: baseline;
+ gap: 0.25rem;
+ font-weight: 600;
+}
+
+.taxonomy-term-card__count-label {
+ font-weight: 400;
+ opacity: 0.8;
+}
+
+.taxonomy-term-card__latest-text {
+ display: flex;
+ align-items: center;
+ gap: 0.375rem;
+ flex-wrap: wrap;
+}
+
+.taxonomy-term-card__latest-title {
+ font-weight: 500;
+ color: var(--taxonomy-text-primary);
+ transition: var(--taxonomy-transition-fast);
+}
+
+.taxonomy-term-card:hover .taxonomy-term-card__latest-title {
+ color: var(--taxonomy-border-accent);
+}
+
+/* Empty State */
+.taxonomy-terms-empty {
+ text-align: center;
+ padding: var(--taxonomy-spacing-xl) var(--taxonomy-spacing-md);
+ margin: var(--taxonomy-spacing-xl) 0;
+}
+
+.taxonomy-terms-empty__icon {
+ width: 64px;
+ height: 64px;
+ fill: var(--taxonomy-text-secondary);
+ opacity: 0.4;
+ margin: 0 auto var(--taxonomy-spacing-md);
+ display: block;
+}
+
+.taxonomy-terms-empty__title {
+ font-size: 1.5rem;
+ font-weight: 600;
+ color: var(--taxonomy-heading-primary);
+ margin: 0 0 var(--taxonomy-spacing-sm) 0;
+}
+
+.taxonomy-terms-empty__description {
+ font-size: 1rem;
+ color: var(--taxonomy-text-secondary);
+ margin: 0;
+}
+
+/* Responsive Design - Mobile First Approach */
+@media (max-width: 45rem) {
+ .taxonomy-terms-header {
+ margin-bottom: var(--taxonomy-spacing-lg);
+ padding-bottom: var(--taxonomy-spacing-md);
+ }
+
+ .taxonomy-terms-title {
+ font-size: 1.75rem;
+ }
+
+ .taxonomy-terms-description {
+ font-size: 1rem;
+ }
+
+ .taxonomy-terms-grid {
+ grid-template-columns: 1fr;
+ gap: var(--taxonomy-spacing-md);
+ margin: var(--taxonomy-spacing-lg) 0;
+ }
+
+ .taxonomy-term-card {
+ min-height: auto;
+ }
+
+ .taxonomy-term-card__header {
+ padding: var(--taxonomy-spacing-sm) var(--taxonomy-spacing-sm) var(--taxonomy-spacing-xs);
+ }
+
+ .taxonomy-term-card__title {
+ font-size: 1.25rem;
+ }
+
+ .taxonomy-term-card__body {
+ padding: var(--taxonomy-spacing-sm);
+ }
+
+ .taxonomy-term-card__footer {
+ padding: var(--taxonomy-spacing-sm);
+ }
+
+ .taxonomy-term-card__meta {
+ gap: var(--taxonomy-spacing-xs);
+ }
+
+ .taxonomy-term-card__count,
+ .taxonomy-term-card__latest {
+ font-size: 0.8125rem;
+ }
+}
+
+/* Tablet Adjustments */
+@media (min-width: 45.01rem) and (max-width: 75rem) {
+ .taxonomy-terms-grid {
+ grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
+ gap: var(--taxonomy-spacing-md);
+ }
+}
+
+/* Large Screen Optimizations */
+@media (min-width: 120rem) {
+ .taxonomy-terms-grid {
+ grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
+ }
+}
+
+/* Dark mode support */
+:root[color-theme="dark"] .taxonomy-term-card {
+ background: rgba(255, 255, 255, 0.05);
+ border-color: rgba(255, 255, 255, 0.1);
+}
+
+:root[color-theme="dark"] .taxonomy-term-card__header,
+:root[color-theme="dark"] .taxonomy-term-card__footer {
+ border-color: rgba(255, 255, 255, 0.1);
+}
+
+:root[color-theme="dark"] .taxonomy-term-card__footer {
+ background: rgba(255, 255, 255, 0.02);
+}
+
+/* Dark mode: Slightly different background for taxonomy-links-container */
+:root[color-theme="dark"] .taxonomy-links-container {
+ background-color: color-mix(in srgb, var(--custom-paper-color) 95%, white 5%);
+}
+
+@media (prefers-color-scheme: dark) {
+ .taxonomy-term-card {
+ background: rgba(255, 255, 255, 0.05);
+ border-color: rgba(255, 255, 255, 0.1);
+ }
+
+ .taxonomy-term-card__header,
+ .taxonomy-term-card__footer {
+ border-color: rgba(255, 255, 255, 0.1);
+ }
+
+ .taxonomy-term-card__footer {
+ background: rgba(255, 255, 255, 0.02);
+ }
+
+ /* Dark mode: Slightly different background for taxonomy-links-container */
+ .taxonomy-links-container {
+ background-color: color-mix(in srgb, var(--custom-paper-color) 95%, white 5%);
+ }
+}