astro-component-kit 0.3.1 → 0.4.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 +33 -14
- package/package.json +2 -2
- package/src/components/index.ts +16 -202
- package/src/components/lib/buttons/NeonBorderButton.astro +162 -0
- package/src/components/lib/buttons/RippleButton.astro +199 -0
- package/src/components/lib/buttons/SlideRevealButton.astro +159 -0
- package/src/components/lib/buttons/index.ts +4 -0
- package/src/components/lib/cards/GithubRepoCard.astro +176 -0
- package/src/components/lib/cards/PricingCompareMiniCard.astro +196 -0
- package/src/components/lib/cards/StatsTrendCard.astro +149 -0
- package/src/components/lib/cards/index.ts +3 -0
- package/src/components/lib/charts/ActivityRings.astro +105 -0
- package/src/components/lib/charts/BoxPlotChart.astro +109 -0
- package/src/components/lib/charts/BubbleChart.astro +101 -0
- package/src/components/lib/charts/BulletChart.astro +160 -0
- package/src/components/lib/charts/BumpChart.astro +92 -0
- package/src/components/lib/charts/CandlestickChart.astro +105 -0
- package/src/components/lib/charts/ChartFrame.astro +373 -0
- package/src/components/lib/charts/DivergingBarChart.astro +98 -0
- package/src/components/lib/charts/DumbbellChart.astro +92 -0
- package/src/components/lib/charts/ForecastLineChart.astro +125 -0
- package/src/components/lib/charts/FunnelChart.astro +122 -0
- package/src/components/lib/charts/GaugeChart.astro +111 -0
- package/src/components/lib/charts/GoalProgressChart.astro +97 -0
- package/src/components/lib/charts/GroupedBarChart.astro +125 -0
- package/src/components/lib/charts/HeatmapChart.astro +131 -0
- package/src/components/lib/charts/HistogramChart.astro +111 -0
- package/src/components/lib/charts/HorizontalBarChart.astro +155 -0
- package/src/components/lib/charts/KpiStatTile.astro +116 -0
- package/src/components/lib/charts/KpiTrendGrid.astro +60 -0
- package/src/components/lib/charts/LineChart.astro +160 -0
- package/src/components/lib/charts/LinearProgressGauge.astro +136 -0
- package/src/components/lib/charts/LollipopChart.astro +100 -0
- package/src/components/lib/charts/MeterGauge.astro +122 -0
- package/src/components/lib/charts/MetricDeltaTable.astro +125 -0
- package/src/components/lib/charts/PieChart.astro +135 -0
- package/src/components/lib/charts/PolarAreaChart.astro +85 -0
- package/src/components/lib/charts/PopulationPyramid.astro +122 -0
- package/src/components/lib/charts/PunchCardChart.astro +89 -0
- package/src/components/lib/charts/RadarChart.astro +94 -0
- package/src/components/lib/charts/RadarMetricChart.astro +168 -0
- package/src/components/lib/charts/RadialBarChart.astro +124 -0
- package/src/components/lib/charts/RangeAreaChart.astro +113 -0
- package/src/components/lib/charts/RetentionCohortTable.astro +126 -0
- package/src/components/lib/charts/SankeyChart.astro +128 -0
- package/src/components/lib/charts/ScatterPlot.astro +139 -0
- package/src/components/lib/charts/SegmentedBarChart.astro +119 -0
- package/src/components/lib/charts/SlopeChart.astro +105 -0
- package/src/components/lib/charts/SparklineChart.astro +87 -0
- package/src/components/lib/charts/StackedAreaChart.astro +130 -0
- package/src/components/lib/charts/StackedBarChart.astro +136 -0
- package/src/components/lib/charts/SunburstChart.astro +103 -0
- package/src/components/lib/charts/TreemapChart.astro +94 -0
- package/src/components/lib/charts/WaffleChart.astro +121 -0
- package/src/components/lib/charts/WaterfallChart.astro +118 -0
- package/src/components/lib/charts/chart-tooltip.ts +75 -0
- package/src/components/lib/charts/chart-utils.ts +271 -0
- package/src/components/lib/charts/index.ts +46 -0
- package/src/components/lib/data/ActivityHeatmapGrid.astro +157 -0
- package/src/components/lib/data/MetricComparisonRow.astro +109 -0
- package/src/components/lib/data/StatusTimelineFeed.astro +168 -0
- package/src/components/lib/data/index.ts +3 -0
- package/src/components/lib/feedback/ProgressRingCounter.astro +118 -0
- package/src/components/lib/feedback/ToastNotificationGroup.astro +173 -0
- package/src/components/lib/feedback/index.ts +2 -0
- package/src/components/lib/forms/GlassInlineToggleGroup.astro +161 -0
- package/src/components/lib/forms/PasswordStrengthInput.astro +242 -0
- package/src/components/lib/forms/PhoneCountryInput.astro +145 -0
- package/src/components/lib/forms/TagsAutocompleteInput.astro +249 -0
- package/src/components/lib/forms/index.ts +5 -0
- package/src/components/lib/layout/DiagonalSectionDivider.astro +69 -0
- package/src/components/lib/layout/HolyGrailGrid.astro +125 -0
- package/src/components/lib/layout/index.ts +3 -1
- package/src/components/lib/navigation/QuickJumpDock.astro +125 -0
- package/src/components/lib/navigation/StepBreadcrumbBar.astro +151 -0
- package/src/components/lib/navigation/SubNavbarPills.astro +102 -0
- package/src/components/lib/navigation/index.ts +3 -0
- package/src/components/lib/overlays/CookiePreferencesDrawer.astro +226 -0
- package/src/components/lib/overlays/FloatingFeedbackWidget.astro +203 -0
- package/src/components/lib/overlays/ImageCompareSlider.astro +172 -0
- package/src/components/lib/overlays/index.ts +3 -0
- package/src/components/lib/sections/BlogGridSection.astro +131 -0
- package/src/components/lib/sections/CareersOpenings.astro +139 -0
- package/src/components/lib/sections/ChangelogSection.astro +144 -0
- package/src/components/lib/sections/ContactSplitMap.astro +139 -0
- package/src/components/lib/sections/CtaNewsletterSection.astro +163 -0
- package/src/components/lib/sections/CtaSplitImage.astro +147 -0
- package/src/components/lib/sections/FaqTwoColumn.astro +119 -0
- package/src/components/lib/sections/FeatureAlternatingRows.astro +190 -0
- package/src/components/lib/sections/FeatureIconGrid.astro +155 -0
- package/src/components/lib/sections/FeatureTabsShowcase.astro +180 -0
- package/src/components/lib/sections/FooterMegaSection.astro +155 -0
- package/src/components/lib/sections/HeroDashboardPreview.astro +180 -0
- package/src/components/lib/sections/HeroMinimalCentered.astro +175 -0
- package/src/components/lib/sections/HeroShowcaseSplit.astro +304 -0
- package/src/components/lib/sections/HeroTerminal.astro +251 -0
- package/src/components/lib/sections/HeroWaitlist.astro +229 -0
- package/src/components/lib/sections/HowItWorksSteps.astro +178 -0
- package/src/components/lib/sections/IntegrationsGrid.astro +167 -0
- package/src/components/lib/sections/LogoCloudSection.astro +96 -0
- package/src/components/lib/sections/LogoWallGrid.astro +91 -0
- package/src/components/lib/sections/PricingSinglePlan.astro +157 -0
- package/src/components/lib/sections/PricingToggleCards.astro +171 -0
- package/src/components/lib/sections/StatsCounterBand.astro +122 -0
- package/src/components/lib/sections/StatsDashboardSection.astro +83 -0
- package/src/components/lib/sections/TestimonialCarousel.astro +165 -0
- package/src/components/lib/sections/TestimonialFeatured.astro +120 -0
- package/src/components/lib/sections/TestimonialGridSection.astro +188 -0
- package/src/components/lib/sections/index.ts +29 -0
- package/src/components/lib/typography/AnimatedCounterText.astro +102 -0
- package/src/components/lib/typography/CurvedPathHeading.astro +86 -0
- package/src/components/lib/typography/GradientTextMarquee.astro +105 -0
- package/src/components/lib/typography/HackerDecodeText.astro +85 -0
- package/src/components/lib/typography/index.ts +4 -0
- package/src/styles/global.css +18 -1
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
/**
|
|
3
|
+
* CurvedPathHeading — Typographic heading flowing along an SVG circular or arched trajectory.
|
|
4
|
+
*
|
|
5
|
+
* @param {string} text - Headline text content. Default is 'ASTRO COMPONENTS KIT • ZERO RUNTIME DEPENDENCIES •'.
|
|
6
|
+
* @param {number} size - Pixel container diameter. Default is 260.
|
|
7
|
+
* @param {boolean} animate - Whether the badge rotates continuously. Default is true.
|
|
8
|
+
*/
|
|
9
|
+
interface Props {
|
|
10
|
+
text?: string;
|
|
11
|
+
size?: number;
|
|
12
|
+
animate?: boolean;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const {
|
|
16
|
+
text = 'ASTRO COMPONENTS KIT • ZERO RUNTIME • PURE CSS •',
|
|
17
|
+
size = 260,
|
|
18
|
+
animate = true,
|
|
19
|
+
} = Astro.props;
|
|
20
|
+
|
|
21
|
+
const pathId = `curve-path-${Math.random().toString(36).substring(2, 8)}`;
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
<div class:list={['curved-heading', { 'is-animated': animate }]} style={`--curved-size: ${size}px;`}>
|
|
25
|
+
<svg viewBox="0 0 300 300" width={size} height={size}>
|
|
26
|
+
<defs>
|
|
27
|
+
<path
|
|
28
|
+
id={pathId}
|
|
29
|
+
d="M 150, 150 m -110, 0 a 110,110 0 1,1 220,0 a 110,110 0 1,1 -220,0"
|
|
30
|
+
/>
|
|
31
|
+
</defs>
|
|
32
|
+
<text class="curved-heading__text">
|
|
33
|
+
<textPath href={`#${pathId}`} startOffset="0%">
|
|
34
|
+
{text}
|
|
35
|
+
</textPath>
|
|
36
|
+
</text>
|
|
37
|
+
</svg>
|
|
38
|
+
<div class="curved-heading__core">✦</div>
|
|
39
|
+
</div>
|
|
40
|
+
|
|
41
|
+
<style>
|
|
42
|
+
.curved-heading {
|
|
43
|
+
position: relative;
|
|
44
|
+
width: var(--curved-size);
|
|
45
|
+
height: var(--curved-size);
|
|
46
|
+
display: inline-flex;
|
|
47
|
+
align-items: center;
|
|
48
|
+
justify-content: center;
|
|
49
|
+
font-family: var(--font-sans, system-ui, sans-serif);
|
|
50
|
+
user-select: none;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.curved-heading.is-animated svg {
|
|
54
|
+
animation: curved-spin 20s linear infinite;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.curved-heading__text {
|
|
58
|
+
font-size: 13.5px;
|
|
59
|
+
font-weight: 800;
|
|
60
|
+
letter-spacing: 0.18em;
|
|
61
|
+
text-transform: uppercase;
|
|
62
|
+
fill: var(--c-primary-light, #d4a017);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.curved-heading__core {
|
|
66
|
+
position: absolute;
|
|
67
|
+
width: 48px;
|
|
68
|
+
height: 48px;
|
|
69
|
+
border-radius: 50%;
|
|
70
|
+
background: rgba(184, 134, 11, 0.12);
|
|
71
|
+
border: 1px solid rgba(184, 134, 11, 0.3);
|
|
72
|
+
color: var(--c-accent, #fef3c7);
|
|
73
|
+
display: grid;
|
|
74
|
+
place-items: center;
|
|
75
|
+
font-size: 1.2rem;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
@keyframes curved-spin {
|
|
79
|
+
from { transform: rotate(0deg); }
|
|
80
|
+
to { transform: rotate(360deg); }
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@media (prefers-reduced-motion: reduce) {
|
|
84
|
+
.curved-heading.is-animated svg { animation: none; }
|
|
85
|
+
}
|
|
86
|
+
</style>
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
/**
|
|
3
|
+
* GradientTextMarquee — Continuous kinetic typographic marquee banner with background-clip gold gradient.
|
|
4
|
+
*
|
|
5
|
+
* @param {string[]} phrases - Array of words or slogans to scroll continuously.
|
|
6
|
+
* @param {string} speed - Animation duration string (e.g. '25s'). Default is '20s'.
|
|
7
|
+
* @param {boolean} reverse - Whether the marquee moves in reverse direction.
|
|
8
|
+
*/
|
|
9
|
+
interface Props {
|
|
10
|
+
phrases?: string[];
|
|
11
|
+
speed?: string;
|
|
12
|
+
reverse?: boolean;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const {
|
|
16
|
+
phrases = [
|
|
17
|
+
'PERFORMANCE FIRST',
|
|
18
|
+
'ZERO DEPENDENCIES',
|
|
19
|
+
'ACCESSIBLE WCAG AA',
|
|
20
|
+
'ASTRO 5 READY',
|
|
21
|
+
'DARK GLASS MORPHISM',
|
|
22
|
+
],
|
|
23
|
+
speed = '20s',
|
|
24
|
+
reverse = false,
|
|
25
|
+
} = Astro.props;
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
<div class="grad-marquee" style={`--marquee-speed: ${speed};`} aria-label="Animated slogan marquee">
|
|
29
|
+
<div class:list={['grad-marquee__track', { 'is-reverse': reverse }]}>
|
|
30
|
+
{phrases.map((phrase) => (
|
|
31
|
+
<span class="grad-marquee__item">
|
|
32
|
+
<span class="text">{phrase}</span>
|
|
33
|
+
<span class="dot" aria-hidden="true">✦</span>
|
|
34
|
+
</span>
|
|
35
|
+
))}
|
|
36
|
+
{/* Duplicate loop */}
|
|
37
|
+
{phrases.map((phrase) => (
|
|
38
|
+
<span class="grad-marquee__item" aria-hidden="true">
|
|
39
|
+
<span class="text">{phrase}</span>
|
|
40
|
+
<span class="dot" aria-hidden="true">✦</span>
|
|
41
|
+
</span>
|
|
42
|
+
))}
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
<style>
|
|
47
|
+
.grad-marquee {
|
|
48
|
+
position: relative;
|
|
49
|
+
width: 100%;
|
|
50
|
+
overflow: hidden;
|
|
51
|
+
padding: var(--sp-4, 1rem) 0;
|
|
52
|
+
user-select: none;
|
|
53
|
+
mask-image: linear-gradient(90deg, transparent, #000 15%, #000 85%, transparent);
|
|
54
|
+
-webkit-mask-image: linear-gradient(90deg, transparent, #000 15%, #000 85%, transparent);
|
|
55
|
+
font-family: var(--font-sans, system-ui, sans-serif);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.grad-marquee__track {
|
|
59
|
+
display: flex;
|
|
60
|
+
align-items: center;
|
|
61
|
+
gap: 2rem;
|
|
62
|
+
width: max-content;
|
|
63
|
+
animation: marquee-roll var(--marquee-speed) linear infinite;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.grad-marquee__track:hover {
|
|
67
|
+
animation-play-state: paused;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.grad-marquee__track.is-reverse {
|
|
71
|
+
animation-direction: reverse;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.grad-marquee__item {
|
|
75
|
+
display: inline-flex;
|
|
76
|
+
align-items: center;
|
|
77
|
+
gap: 2rem;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.grad-marquee__item .text {
|
|
81
|
+
font-size: clamp(1.8rem, 4vw, 3.2rem);
|
|
82
|
+
font-weight: 900;
|
|
83
|
+
letter-spacing: 0.05em;
|
|
84
|
+
text-transform: uppercase;
|
|
85
|
+
background: linear-gradient(135deg, #ffffff 0%, #fef3c7 40%, #d4a017 80%, #b8860b 100%);
|
|
86
|
+
-webkit-background-clip: text;
|
|
87
|
+
-webkit-text-fill-color: transparent;
|
|
88
|
+
background-clip: text;
|
|
89
|
+
white-space: nowrap;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.grad-marquee__item .dot {
|
|
93
|
+
color: var(--c-primary-light, #d4a017);
|
|
94
|
+
font-size: 1.2rem;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
@keyframes marquee-roll {
|
|
98
|
+
from { transform: translateX(0); }
|
|
99
|
+
to { transform: translateX(-50%); }
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
@media (prefers-reduced-motion: reduce) {
|
|
103
|
+
.grad-marquee__track { animation: none; overflow-x: auto; }
|
|
104
|
+
}
|
|
105
|
+
</style>
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
/**
|
|
3
|
+
* HackerDecodeText — Cyberpunk Matrix-style randomized character deciphering effect on hover.
|
|
4
|
+
*
|
|
5
|
+
* @param {string} text - Final decoded text string. Default is 'CYBERNETIC SYSTEM READY'.
|
|
6
|
+
* @param {string} tag - HTML heading or paragraph tag. Default is 'h3'.
|
|
7
|
+
* @param {string} className - Optional CSS class names.
|
|
8
|
+
*/
|
|
9
|
+
interface Props {
|
|
10
|
+
text?: string;
|
|
11
|
+
tag?: 'h1' | 'h2' | 'h3' | 'h4' | 'p' | 'span';
|
|
12
|
+
className?: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const {
|
|
16
|
+
text = 'CYBERNETIC PROTOCOL ONLINE',
|
|
17
|
+
tag: Tag = 'h3',
|
|
18
|
+
className = '',
|
|
19
|
+
} = Astro.props;
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
<Tag
|
|
23
|
+
class:list={['hacker-text', className]}
|
|
24
|
+
data-hacker-text={text}
|
|
25
|
+
title="Hover to decode"
|
|
26
|
+
>
|
|
27
|
+
{text}
|
|
28
|
+
</Tag>
|
|
29
|
+
|
|
30
|
+
<style>
|
|
31
|
+
.hacker-text {
|
|
32
|
+
font-family: var(--font-mono, 'JetBrains Mono', monospace);
|
|
33
|
+
font-size: clamp(1.2rem, 3vw, 2rem);
|
|
34
|
+
font-weight: 800;
|
|
35
|
+
color: var(--c-primary-light, #d4a017);
|
|
36
|
+
letter-spacing: 0.08em;
|
|
37
|
+
cursor: default;
|
|
38
|
+
user-select: none;
|
|
39
|
+
transition: text-shadow 0.2s ease;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.hacker-text:hover {
|
|
43
|
+
text-shadow: 0 0 12px rgba(212, 160, 23, 0.7);
|
|
44
|
+
}
|
|
45
|
+
</style>
|
|
46
|
+
|
|
47
|
+
<script>
|
|
48
|
+
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+-=[]{}|;:,.<>?';
|
|
49
|
+
|
|
50
|
+
function setupHackerText() {
|
|
51
|
+
document.querySelectorAll('[data-hacker-text]').forEach((el) => {
|
|
52
|
+
if (el.getAttribute('data-hacker-init')) return;
|
|
53
|
+
el.setAttribute('data-hacker-init', 'true');
|
|
54
|
+
|
|
55
|
+
const original = el.getAttribute('data-hacker-text') || el.textContent || '';
|
|
56
|
+
let interval: any = null;
|
|
57
|
+
|
|
58
|
+
el.addEventListener('pointerenter', () => {
|
|
59
|
+
let iteration = 0;
|
|
60
|
+
clearInterval(interval);
|
|
61
|
+
|
|
62
|
+
interval = setInterval(() => {
|
|
63
|
+
el.textContent = original
|
|
64
|
+
.split('')
|
|
65
|
+
.map((char, index) => {
|
|
66
|
+
if (char === ' ') return ' ';
|
|
67
|
+
if (index < iteration) {
|
|
68
|
+
return original[index];
|
|
69
|
+
}
|
|
70
|
+
return chars[Math.floor(Math.random() * chars.length)];
|
|
71
|
+
})
|
|
72
|
+
.join('');
|
|
73
|
+
|
|
74
|
+
if (iteration >= original.length) {
|
|
75
|
+
clearInterval(interval);
|
|
76
|
+
}
|
|
77
|
+
iteration += 1 / 2;
|
|
78
|
+
}, 30);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
setupHackerText();
|
|
84
|
+
document.addEventListener('astro:page-load', setupHackerText);
|
|
85
|
+
</script>
|
|
@@ -21,3 +21,7 @@ export { default as ShadowRevealText } from './ShadowRevealText.astro';
|
|
|
21
21
|
export { default as StrokeHeadingOutline } from './StrokeHeadingOutline.astro';
|
|
22
22
|
export { default as Text3DLayer } from './Text3DLayer.astro';
|
|
23
23
|
export { default as TypewriterText } from './TypewriterText.astro';
|
|
24
|
+
export { default as AnimatedCounterText } from './AnimatedCounterText.astro';
|
|
25
|
+
export { default as GradientTextMarquee } from './GradientTextMarquee.astro';
|
|
26
|
+
export { default as CurvedPathHeading } from './CurvedPathHeading.astro';
|
|
27
|
+
export { default as HackerDecodeText } from './HackerDecodeText.astro';
|
package/src/styles/global.css
CHANGED
|
@@ -26,6 +26,21 @@
|
|
|
26
26
|
--c-text-2: #a3a3a3;
|
|
27
27
|
--c-text-3: #737373;
|
|
28
28
|
|
|
29
|
+
/* Data-viz — categorical slots (fixed order, CVD-validated for dark surfaces) */
|
|
30
|
+
--chart-1: #3987e5; /* blue */
|
|
31
|
+
--chart-2: #d95926; /* orange */
|
|
32
|
+
--chart-3: #199e70; /* aqua */
|
|
33
|
+
--chart-4: #c98500; /* yellow */
|
|
34
|
+
--chart-5: #d55181; /* magenta */
|
|
35
|
+
--chart-6: #2f9e2f; /* green */
|
|
36
|
+
--chart-7: #9085e9; /* violet */
|
|
37
|
+
--chart-8: #e66767; /* red */
|
|
38
|
+
--chart-pos: #34c38f; /* status: good */
|
|
39
|
+
--chart-neg: #f06a6a; /* status: critical */
|
|
40
|
+
--chart-grid: rgba(255,255,255,0.07);
|
|
41
|
+
--chart-axis: rgba(255,255,255,0.18);
|
|
42
|
+
--chart-surface: #0d0d0f;
|
|
43
|
+
|
|
29
44
|
/* Typography */
|
|
30
45
|
--font-sans: 'Inter', system-ui, sans-serif;
|
|
31
46
|
--font-mono: 'JetBrains Mono', 'Fira Code', monospace;
|
|
@@ -35,8 +50,10 @@
|
|
|
35
50
|
--sp-2: 0.5rem; /* 8px */
|
|
36
51
|
--sp-3: 0.75rem; /* 12px */
|
|
37
52
|
--sp-4: 1rem; /* 16px */
|
|
53
|
+
--sp-5: 1.25rem; /* 20px */
|
|
38
54
|
--sp-6: 1.5rem; /* 24px */
|
|
39
55
|
--sp-8: 2rem; /* 32px */
|
|
56
|
+
--sp-10: 2.5rem; /* 40px */
|
|
40
57
|
--sp-12: 3rem; /* 48px */
|
|
41
58
|
--sp-16: 4rem; /* 64px */
|
|
42
59
|
|
|
@@ -48,7 +65,7 @@
|
|
|
48
65
|
--r-full: 9999px;
|
|
49
66
|
|
|
50
67
|
/* Sidebar */
|
|
51
|
-
--sidebar-w:
|
|
68
|
+
--sidebar-w: 280px;
|
|
52
69
|
--header-h: 85px;
|
|
53
70
|
}
|
|
54
71
|
|