zeus-css 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +81 -0
- package/bin/init.js +89 -0
- package/dist/zeus.css +8456 -0
- package/dist/zeus.min.css +1 -0
- package/package.json +44 -0
- package/scss/.stylelintrc.json +41 -0
- package/scss/API.md +168 -0
- package/scss/CHANGELOG.md +281 -0
- package/scss/LICENSE +21 -0
- package/scss/README.md +160 -0
- package/scss/cheatsheet.md +249 -0
- package/scss/dist/zeus.css +8465 -0
- package/scss/dist/zeus.css.map +1 -0
- package/scss/dist/zeus.min.css +1 -0
- package/scss/dist/zeus.min.css.map +1 -0
- package/scss/foundation/core/_api.scss +10 -0
- package/scss/foundation/core/_design.scss +33 -0
- package/scss/foundation/core/_engine.scss +18 -0
- package/scss/foundation/core/buttons/variants.scss +72 -0
- package/scss/foundation/core/design/_design-system.scss +41 -0
- package/scss/foundation/core/design/_validate.scss +114 -0
- package/scss/foundation/core/design/borders/border-line.scss +29 -0
- package/scss/foundation/core/design/borders/border-radius.scss +31 -0
- package/scss/foundation/core/design/buttons/sizes.scss +32 -0
- package/scss/foundation/core/design/colors/_color-derivation.scss +80 -0
- package/scss/foundation/core/design/colors/base-colors.scss +31 -0
- package/scss/foundation/core/design/colors/semantic-colors.scss +130 -0
- package/scss/foundation/core/design/core/basic.scss +40 -0
- package/scss/foundation/core/design/dimensions/sizes.scss +29 -0
- package/scss/foundation/core/design/dimensions/spaces.scss +42 -0
- package/scss/foundation/core/design/effects/_z-index.scss +30 -0
- package/scss/foundation/core/design/effects/shadows.scss +65 -0
- package/scss/foundation/core/design/layout/grid.scss +86 -0
- package/scss/foundation/core/design/typography/typography.scss +435 -0
- package/scss/foundation/core/engine/_fluid-core.scss +54 -0
- package/scss/foundation/core/engine/animations.scss +91 -0
- package/scss/foundation/core/engine/buttons.scss +226 -0
- package/scss/foundation/core/engine/color-api.scss +37 -0
- package/scss/foundation/core/engine/helpers.scss +39 -0
- package/scss/foundation/core/engine/layout.scss +156 -0
- package/scss/foundation/core/engine/responsive.scss +67 -0
- package/scss/foundation/core/engine/shadows.scss +186 -0
- package/scss/foundation/core/engine/shortcuts.scss +30 -0
- package/scss/foundation/core/engine/sizing.scss +49 -0
- package/scss/foundation/core/engine/theme-builder.scss +83 -0
- package/scss/foundation/core/engine/typographics.scss +44 -0
- package/scss/foundation/core/engine/typography-calc.scss +71 -0
- package/scss/foundation/foundation.scss +29 -0
- package/scss/foundation/views/_render.scss +13 -0
- package/scss/foundation/views/components/_alert.scss +103 -0
- package/scss/foundation/views/components/_avatar.scss +84 -0
- package/scss/foundation/views/components/_badge.scss +100 -0
- package/scss/foundation/views/components/_breadcrumb.scss +70 -0
- package/scss/foundation/views/components/_card.scss +117 -0
- package/scss/foundation/views/components/_dropdown.scss +123 -0
- package/scss/foundation/views/components/_form.scss +209 -0
- package/scss/foundation/views/components/_index.scss +20 -0
- package/scss/foundation/views/components/_modal.scss +138 -0
- package/scss/foundation/views/components/_pagination.scss +82 -0
- package/scss/foundation/views/components/_skeleton.scss +69 -0
- package/scss/foundation/views/components/_table.scss +94 -0
- package/scss/foundation/views/components/_tabs.scss +96 -0
- package/scss/foundation/views/components/_toast.scss +139 -0
- package/scss/foundation/views/components/_tooltip.scss +100 -0
- package/scss/foundation/views/patterns/_hero.scss +121 -0
- package/scss/foundation/views/patterns/_index.scss +8 -0
- package/scss/foundation/views/patterns/_sidebar-layout.scss +83 -0
- package/scss/foundation/views/render/_layer-order.scss +11 -0
- package/scss/foundation/views/render/classes/_animations.scss +233 -0
- package/scss/foundation/views/render/classes/_aspect-ratio.scss +17 -0
- package/scss/foundation/views/render/classes/_borders.scss +31 -0
- package/scss/foundation/views/render/classes/_buttons.scss +40 -0
- package/scss/foundation/views/render/classes/_colors.scss +83 -0
- package/scss/foundation/views/render/classes/_compounds.scss +103 -0
- package/scss/foundation/views/render/classes/_containers.scss +20 -0
- package/scss/foundation/views/render/classes/_misc-utils.scss +51 -0
- package/scss/foundation/views/render/classes/_position.scss +56 -0
- package/scss/foundation/views/render/classes/_sections.scss +30 -0
- package/scss/foundation/views/render/classes/_shadows.scss +198 -0
- package/scss/foundation/views/render/classes/_sizes.scss +39 -0
- package/scss/foundation/views/render/classes/_sizing-utils.scss +53 -0
- package/scss/foundation/views/render/classes/_spacing.scss +91 -0
- package/scss/foundation/views/render/classes/_state-variants.scss +47 -0
- package/scss/foundation/views/render/classes/_typography.scss +32 -0
- package/scss/foundation/views/render/classes/_utilities.scss +103 -0
- package/scss/foundation/views/render/classes/_z-index.scss +22 -0
- package/scss/foundation/views/render/classes/flexbox.scss +56 -0
- package/scss/foundation/views/render/classes/grid.scss +195 -0
- package/scss/foundation/views/render/classes.scss +116 -0
- package/scss/foundation/views/render/html-body.scss +54 -0
- package/scss/foundation/views/render/property-registration.scss +77 -0
- package/scss/foundation/views/render/reset.scss +147 -0
- package/scss/foundation/views/render/root-generator.scss +166 -0
- package/scss/foundation/views/render/root.scss +19 -0
- package/scss/foundation/views/render/typography.scss +129 -0
- package/scss/llms.txt +247 -0
- package/scss/package.json +89 -0
- package/scss/scripts/gen-cheatsheet.mjs +178 -0
- package/scss/scripts/gen-tokens.mjs +91 -0
- package/scss/scripts/test-compile.mjs +474 -0
- package/scss/zeus.config.scss +99 -0
- package/scss/zeus.customize.scss +246 -0
- package/scss/zeus.scss +17 -0
- package/scss/zeus.token.sets.example.scss +176 -0
- package/scss/zeus.tokens.json +687 -0
package/README.md
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# ⚡ Zeus CSS
|
|
2
|
+
|
|
3
|
+
A Premium, Zero-Emission, Fluid-Scaling CSS Framework based on Sass SCSS Engine.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install zeus-css
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
### 1. Import Global Foundation
|
|
14
|
+
Import the pre-compiled global foundation (Reset, Variable pipeline, utility classes) in your application entrypoint (e.g., `layout.tsx`, `_app.tsx` or `main.tsx`):
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
import 'zeus-css/dist/zeus.css';
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### 2. Configure Your Custom Theme (Optional)
|
|
21
|
+
Generate the configuration file by running the init command in your project root:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npx zeus-css init
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
This will create a `zeus.config.scss` in your project. You can override colors, spacing, fonts, and more using OKLCH:
|
|
28
|
+
|
|
29
|
+
```scss
|
|
30
|
+
// zeus.config.scss
|
|
31
|
+
$zeus-colors: (
|
|
32
|
+
"primary": oklch(57.9% 0.232 259.6),
|
|
33
|
+
"secondary": oklch(74.7% 0.174 60.6)
|
|
34
|
+
) !default;
|
|
35
|
+
|
|
36
|
+
@forward "zeus-css/scss/zeus.scss";
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 3. Use CSS Variables in CSS Modules
|
|
40
|
+
Thanks to the framework's token generation, you can natively use the fluid CSS variables everywhere:
|
|
41
|
+
|
|
42
|
+
```scss
|
|
43
|
+
@use "zeus-css/scss/zeus.scss" as *;
|
|
44
|
+
|
|
45
|
+
.card {
|
|
46
|
+
padding: var(--space-md) var(--space-lg);
|
|
47
|
+
background: var(--color-background);
|
|
48
|
+
border-radius: var(--border-radius-md);
|
|
49
|
+
|
|
50
|
+
/* Use the engine mixins for custom breakpoints */
|
|
51
|
+
@include screen-above(lg) {
|
|
52
|
+
border-radius: var(--border-radius-lg);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## ⚠️ Optimizing for Production (Crucial)
|
|
58
|
+
Zeus CSS ships with thousands of utility classes to give you absolute freedom during development. For production builds, you **must** use PurgeCSS to remove unused selectors and keep your CSS payload tiny.
|
|
59
|
+
|
|
60
|
+
Example `postcss.config.js` for Next.js / Vite:
|
|
61
|
+
```javascript
|
|
62
|
+
module.exports = {
|
|
63
|
+
plugins: [
|
|
64
|
+
['@fullhuman/postcss-purgecss', {
|
|
65
|
+
content: [
|
|
66
|
+
'./pages/**/*.{js,jsx,ts,tsx}',
|
|
67
|
+
'./components/**/*.{js,jsx,ts,tsx}',
|
|
68
|
+
'./src/**/*.{js,jsx,ts,tsx}'
|
|
69
|
+
],
|
|
70
|
+
defaultExtractor: content => content.match(/[\w-/:]+(?<!:)/g) || []
|
|
71
|
+
}]
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Features
|
|
77
|
+
|
|
78
|
+
- **Fluid Linear Interpolation Engine**: Mathematical clamp generator for automatic responsive font sizes and spacing without media-query soup.
|
|
79
|
+
- **Recursive Token Pipeline**: Automatically traverses and transforms complex Sass maps into CSS Custom Properties.
|
|
80
|
+
- **CSS @property Type Safety**: Native browser-level type-safety for key tokens.
|
|
81
|
+
- **Zero-Emission SCSS API**: Uses Sass `@forward` to expose core design tools without emitting a single duplicate byte of CSS.
|
package/bin/init.js
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const fs = require('fs');
|
|
3
|
+
const path = require('path');
|
|
4
|
+
|
|
5
|
+
const projectRoot = process.cwd();
|
|
6
|
+
const configTargetPath = path.join(projectRoot, 'zeus.config.scss');
|
|
7
|
+
const customizeTargetPath = path.join(projectRoot, 'zeus.customize.scss');
|
|
8
|
+
const bridgeTargetPath = path.join(projectRoot, 'zeus.scss');
|
|
9
|
+
|
|
10
|
+
const configSource = path.join(__dirname, '..', 'scss', 'zeus.config.scss');
|
|
11
|
+
const customizeSource = path.join(__dirname, '..', 'scss', 'zeus.customize.scss');
|
|
12
|
+
|
|
13
|
+
console.log('⚡ Initializing Zeus CSS Configuration (Eject Mode)...');
|
|
14
|
+
|
|
15
|
+
if (fs.existsSync(configTargetPath) || fs.existsSync(bridgeTargetPath)) {
|
|
16
|
+
console.log('⚠️ Zeus config files already exist in this directory. Skipping.');
|
|
17
|
+
process.exit(0);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
try {
|
|
21
|
+
// 1. Copy original zeus.config.scss and zeus.customize.scss
|
|
22
|
+
fs.copyFileSync(configSource, configTargetPath);
|
|
23
|
+
fs.copyFileSync(customizeSource, customizeTargetPath);
|
|
24
|
+
console.log('✅ Copied zeus.config.scss');
|
|
25
|
+
console.log('✅ Copied zeus.customize.scss');
|
|
26
|
+
|
|
27
|
+
// 2. Generate the Bridge file
|
|
28
|
+
const bridgeContent = `// ╔══════════════════════════════════════════════════════════════╗
|
|
29
|
+
// ║ ⚡ Zeus CSS — Bridge Entry Point ║
|
|
30
|
+
// ║ Auto-generated by zeus-css init ║
|
|
31
|
+
// ╚══════════════════════════════════════════════════════════════╝
|
|
32
|
+
// This file injects your local configurations into the framework!
|
|
33
|
+
// Do not edit this file unless you add/remove configuration keys.
|
|
34
|
+
|
|
35
|
+
@use "./zeus.config.scss" as localConfig;
|
|
36
|
+
@use "./zeus.customize.scss" as localCustomize;
|
|
37
|
+
|
|
38
|
+
@use "zeus-css/scss/zeus.scss" with (
|
|
39
|
+
// 1. Config Variables
|
|
40
|
+
$zeus-enable-responsive-classes: localConfig.$zeus-enable-responsive-classes,
|
|
41
|
+
$zeus-enable-animation-classes: localConfig.$zeus-enable-animation-classes,
|
|
42
|
+
$zeus-enable-grid-system: localConfig.$zeus-enable-grid-system,
|
|
43
|
+
$zeus-enable-shadow-classes: localConfig.$zeus-enable-shadow-classes,
|
|
44
|
+
$zeus-enable-color-utilities: localConfig.$zeus-enable-color-utilities,
|
|
45
|
+
$zeus-enable-property-registration: localConfig.$zeus-enable-property-registration,
|
|
46
|
+
$zeus-use-prefix: localConfig.$zeus-use-prefix,
|
|
47
|
+
$zeus-class-prefix: localConfig.$zeus-class-prefix,
|
|
48
|
+
$zeus-version: localConfig.$zeus-version,
|
|
49
|
+
$zeus-container-bounds: localConfig.$zeus-container-bounds,
|
|
50
|
+
$zeus-root-font-size: localConfig.$zeus-root-font-size,
|
|
51
|
+
$zeus-focus-ring: localConfig.$zeus-focus-ring,
|
|
52
|
+
$zeus-outer-max-width: localConfig.$zeus-outer-max-width,
|
|
53
|
+
$zeus-breakpoints: localConfig.$zeus-breakpoints,
|
|
54
|
+
$zeus-viewports: localConfig.$zeus-viewports,
|
|
55
|
+
$zeus-viewport-gutter: localConfig.$zeus-viewport-gutter,
|
|
56
|
+
$zeus-outer-padding: localConfig.$zeus-outer-padding,
|
|
57
|
+
$zeus-column-gaps: localConfig.$zeus-column-gaps,
|
|
58
|
+
|
|
59
|
+
// 2. Customize Variables (Tokens)
|
|
60
|
+
$zeus-colors: localCustomize.$zeus-colors,
|
|
61
|
+
$zeus-font-family: localCustomize.$zeus-font-family,
|
|
62
|
+
$zeus-typography: localCustomize.$zeus-typography,
|
|
63
|
+
$zeus-space: localCustomize.$zeus-space,
|
|
64
|
+
$zeus-border-radius: localCustomize.$zeus-border-radius,
|
|
65
|
+
$zeus-border-line: localCustomize.$zeus-border-line,
|
|
66
|
+
$zeus-icon-size: localCustomize.$zeus-icon-size,
|
|
67
|
+
$zeus-shadows: localCustomize.$zeus-shadows,
|
|
68
|
+
$zeus-button-sizes: localCustomize.$zeus-button-sizes,
|
|
69
|
+
$zeus-base-colors: localCustomize.$zeus-base-colors,
|
|
70
|
+
$zeus-z-index: localCustomize.$zeus-z-index,
|
|
71
|
+
$zeus-custom-vars: localCustomize.$zeus-custom-vars,
|
|
72
|
+
$zeus-button-variants: localCustomize.$zeus-button-variants
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
// Expose the configured framework so you can import it elsewhere
|
|
76
|
+
@forward "zeus-css/scss/zeus.scss";
|
|
77
|
+
`;
|
|
78
|
+
|
|
79
|
+
fs.writeFileSync(bridgeTargetPath, bridgeContent, 'utf8');
|
|
80
|
+
console.log('✅ Created zeus.scss (Bridge) successfully!');
|
|
81
|
+
|
|
82
|
+
console.log('\n🚀 Zeus CSS is fully ejected and ready!');
|
|
83
|
+
console.log('Next steps:');
|
|
84
|
+
console.log('1. Import your local bridge in your SCSS modules:');
|
|
85
|
+
console.log(' @use "./zeus.scss" as *;');
|
|
86
|
+
console.log('2. Edit zeus.config.scss or zeus.customize.scss to update the framework globally.');
|
|
87
|
+
} catch (e) {
|
|
88
|
+
console.error('❌ Failed to extract Zeus config files', e);
|
|
89
|
+
}
|