feat: refactor components to use slots, implement CSS-controlled SVG graphics, and enhance theming system
- Refactored InitialSection.astro to use named slot (extraContent) instead of prop for flexible HTML/JSX content injection from parent components - Updated index.astro to utilize extraContent slot in InitialSection component - Replaced decorative background div in Layout.astro with inline SVG element, enabling dynamic color control via CSS variable (--naliia-n-bg-color) - Added .bg-svg class and --bg-svg-color variable in global.css for customizable SVG decorative background - Converted navbar logo from img to inline SVG with CSS-controlled gradient using linearGradient definition - Implemented gradient variables (--navbar-n-naliia-start, --navbar-n-naliia-end) for theme-aware logo coloring - Configured vertical gradient (bottom-to-top) with pink color at bottom for navbar logo - Added data-theme attribute support in Layout.astro for light/dark theme switching - Extended global.css with comprehensive color palette (pink, yellow, mistyRose variants) and semantic tokens - Refactored all color references to use CSS custom properties for consistent theming - Updated Footer.astro logo from img to inline SVG with gradient support matching navbar implementation - Replaced hardcoded color values in navbar.css and footer.css with semantic token variables - Added [data-theme='dark'] selector in global.css to support future dark mode implementation - Created reusable CSS variables for borders, backgrounds, and text colors across components - Improved pricing card layout with enhanced visual hierarchy and gradient-based pricing tiers - Restructured index.astro pricing section with improved feature presentation and layout
This commit is contained in:
@@ -32,7 +32,7 @@
|
||||
}
|
||||
|
||||
.offer-card {
|
||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||
border: var(--main-border);
|
||||
border-radius: var(--space-lg-24px);
|
||||
|
||||
height: 200px;
|
||||
@@ -65,74 +65,66 @@
|
||||
|
||||
.pricing-cards-container {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: var(--space-lg-24px);
|
||||
}
|
||||
|
||||
.pricing-card {
|
||||
border-radius: var(--space-lg-24px);
|
||||
.best-plan-card {
|
||||
border-top-left-radius: var(--space-2xl-48px);
|
||||
border-top-right-radius: var(--space-2xl-48px);
|
||||
|
||||
padding: var(--space-3xl-64px) var(--space-xl-32px);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--space-2xl-48px);
|
||||
padding: var(--space-xl-32px);
|
||||
|
||||
height: 372px;
|
||||
width: 100%;
|
||||
box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.1);
|
||||
background-color: var(--pricingcard-bgcolor);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.price-container {
|
||||
height: 100%;
|
||||
width: 50%;
|
||||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
gap: var(--space-2xl-48px);
|
||||
border-top-left-radius: var(--space-2xl-48px);
|
||||
|
||||
min-height: 650px;
|
||||
width: 380px;
|
||||
box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.1);
|
||||
background-color: #363636;
|
||||
}
|
||||
& .plan-type {
|
||||
font-weight: bold;
|
||||
background-color: var(--pricingcard-plantype-bgcolor);
|
||||
color: var(--pricingcard-plantype-txtcolor);
|
||||
padding: var(--space-sm-8px) var(--space-md-16px);
|
||||
border-radius: var(--space-md-16px);
|
||||
width: fit-content;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.pricing-card-content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--space-2xl-48px);
|
||||
}
|
||||
|
||||
.more-details {
|
||||
font-size: var(--font-desktop-base);
|
||||
line-height: var(--line-height-desktop-base);
|
||||
color: white;
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.best-plan-card {
|
||||
border: 4px solid #e54c75;
|
||||
height: 680px;
|
||||
}
|
||||
|
||||
.pricing-card .plan-type {
|
||||
font-weight: bold;
|
||||
background-color: #e54c75;
|
||||
padding: var(--space-sm-8px) var(--space-md-16px);
|
||||
border-radius: var(--space-md-16px);
|
||||
width: fit-content;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
& a {
|
||||
color: var(--pricingcard-value-txtcolor);
|
||||
}
|
||||
}
|
||||
|
||||
.price-and-description {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--space-sm-8px);
|
||||
}
|
||||
|
||||
.features-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--space-sm-8px);
|
||||
& h4,
|
||||
h6,
|
||||
p {
|
||||
color: var(--pricingcard-value-txtcolor);
|
||||
}
|
||||
|
||||
&& li {
|
||||
color: white;
|
||||
font-size: var(--font-desktop-base);
|
||||
line-height: var(--line-height-desktop-base);
|
||||
& .price-title {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -163,8 +155,45 @@
|
||||
font-size: var(--font-desktop-sm);
|
||||
font-weight: normal;
|
||||
line-height: var(--line-height-desktop-sm);
|
||||
color: white;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.divider {
|
||||
width: 1px;
|
||||
height: 95%;
|
||||
background-color: rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
|
||||
.features-container {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--space-md-16px);
|
||||
|
||||
& .features-subtitle {
|
||||
font-weight: bold;
|
||||
font-size: var(--font-desktop-base);
|
||||
color: var(--pricingcard-features-subtitlecolor);
|
||||
}
|
||||
}
|
||||
|
||||
.features-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--space-md-16px);
|
||||
|
||||
& .basic-features,
|
||||
.webapp-features,
|
||||
.ai-features {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
& p {
|
||||
color: var(--pricingcard-features-txtcolor);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user