svarog-ui-core
Version:
Core components of Svarog UI without themes
203 lines (168 loc) • 4.27 kB
JavaScript
// src/components/ContactSection/ContactSection.styles.js
import { css } from '../../utils/styleInjection.js';
export const contactSectionStyles = css`
.contact-section {
--contact-section-gap: var(--space-1);
--contact-section-content-gap: var(--space-2);
--contact-info-gap: var(--space-1);
--contact-info-item-gap: var(--space-1);
--contact-form-title-margin: 0 0 var(--space-1) 0;
--contact-info-padding: var(--space-2);
--checkbox-gap: var(--space-1);
}
/* Content area styling */
.contact-section__content {
display: flex;
flex-direction: column;
gap: var(--contact-section-content-gap);
height: 100%;
}
.contact-info:last-child {
margin-bottom: 0;
}
/* Contact info items */
.contact-info__item {
display: flex;
flex-direction: column;
gap: var(--contact-info-item-gap);
margin-bottom: var(--contact-info-gap);
}
.contact-info__item:first-child {
font-weight: var(--font-weight-semibold, 600);
}
.contact-info__item:last-child {
margin-bottom: 0;
}
.contact-info__label {
font-weight: var(--font-weight-semibold, 600);
margin-bottom: var(--cspace-1);
margin-top: var(--space-4);
}
.contact-info__address {
display: flex;
flex-direction: column;
gap: 0.125rem;
}
/* Required field notice */
.contact-form__required-notice {
margin-top: var(--space-2);
margin-bottom: var(--space-1);
text-align: left;
}
.contact-form__required-text {
font-size: var(--font-size-sm, 0.875rem);
color: var(--color-text-muted, #666);
font-style: italic;
}
/* Enhanced hours display */
.contact-info__item--hours {
align-items: flex-start;
}
.contact-info__hours-list {
margin: 0;
padding: 0;
list-style: none;
color: var(--color-text-muted, #666);
line-height: 1.6;
}
.contact-info__hours-item {
display: flex;
gap: 0.5rem;
padding: 0.125rem 0;
}
.contact-info__hours-item:first-child {
padding-top: 0;
}
.contact-info__hours-item:last-child {
padding-bottom: 0;
}
.contact-info__hours-day {
font-weight: var(--font-weight-medium, 500);
min-width: 7rem;
flex-shrink: 0;
}
.contact-info__hours-time {
color: var(--color-text-muted, #666);
}
/* Responsive hours display */
@media (max-width: 767px) {
.contact-info__hours-list {
font-size: var(--font-size-sm, 0.875rem);
}
.contact-info__hours-day {
min-width: 5rem;
}
}
/* Mobile layout adjustments using Grid component */
@media (max-width: 767px) {
.contact-section {
--contact-section-content-gap: 1rem;
--contact-info-padding: 1rem;
}
/* Stack layout for mobile - handled by Grid component responsive behavior */
.contact-section__grid--stack .column:first-child {
order: 1;
}
.contact-section__grid--stack .column:last-child {
order: 2;
}
.contact-section__grid--reverse .column:first-child {
order: 2;
}
.contact-section__grid--reverse .column:last-child {
order: 1;
}
/* Adjust contact info layout on mobile */
.contact-info__item {
flex-direction: row;
align-items: flex-start;
gap: 0.75rem;
}
.contact-info__label {
min-width: 90px;
flex-shrink: 0;
}
.contact-info__value,
.contact-info__address {
flex: 1;
}
}
/* Tablet adjustments */
@media (min-width: 768px) and (max-width: 1023px) {
.contact-section {
--contact-info-padding: 1.25rem;
}
}
/* Large screen optimizations */
@media (min-width: 1200px) {
.contact-section {
--contact-section-content-gap: 2rem;
}
}
/* High contrast mode support */
@media (prefers-contrast: high) {
.contact-info {
border-width: 2px;
}
}
/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
.contact-info__link {
transition: none;
}
}
/* Print styles */
@media print {
.contact-section {
--contact-section-gap: 1rem;
}
.contact-info {
background: white;
border: 1px solid #ccc;
}
/* Hide form in print */
.contact-section__content > form {
display: none;
}
}
`;