diff --git a/assets/css/app.css b/assets/css/app.css new file mode 100644 index 0000000..1b3b2b3 --- /dev/null +++ b/assets/css/app.css @@ -0,0 +1,358 @@ + +/* Default Styles */ +@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap'); + +:root { + --brand-primary: #00B2A8; + --brand-dark: #171e1d; + --brand-light: #00B2A820; + --brand-accent: #00D4C7; + --brand-neutral: #4a5568; + + --white: #FFFFFF; + --light-gray: #E5E7EB; + --medium-gray: #9CA3AF; + --dark-gray: #374151; + --success: #10B981; + --error: #EF4444; + --warning: #F59E0B; + --info: #3B82F6; + + --font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + + --space-1: 4px; + --space-2: 8px; + --space-3: 12px; + --space-4: 16px; + --space-6: 24px; + --space-8: 32px; + --space-12: 48px; + --space-16: 64px; +} + +/* Base Styles */ +body { + font-family: var(--font-family); + line-height: 1.5; + margin: 0; + padding: 0; +} + +/* Primary */ +.cms-bg-primary { + background-color: var(--brand-primary) !important; +} +.cms-text-primary { + color: var(--brand-primary) !important; +} +.cms-border-primary { + border-color: var(--brand-primary) !important; +} + +/* Dark */ +.cms-bg-dark { + background-color: var(--brand-dark) !important; +} +.cms-text-dark { + color: var(--brand-dark) !important; +} +.cms-border-dark { + border-color: var(--brand-dark) !important; +} + +/* Light */ +.cms-bg-light { + background-color: var(--brand-light) !important; +} +.cms-text-light { + color: var(--brand-light) !important; +} +.cms-border-light { + border-color: var(--brand-light) !important; +} + +/* Accent */ +.cms-bg-accent { + background-color: var(--brand-accent) !important; +} + +.cms-text-accent { + color: var(--brand-accent) !important; +} + +.cms-border-accent { + border-color: var(--brand-accent) !important; +} + +/* Neutral - Not available in Tailwind */ +.cms-text-neutral { + color: var(--brand-neutral) !important; +} +.cms-bg-neutral { + background-color: var(--brand-neutral) !important; +} +.cms-border-neutral { + border-color: var(--brand-neutral) !important; +} + +/* Typography */ +.cms-h1 { + font-size: 48px; + font-weight: 700; + line-height: 56px; + margin-bottom: 24px; +} + +.cms-h2 { + font-size: 36px; + font-weight: 700; + line-height: 44px; + margin-bottom: 16px; +} + +.cms-h3 { + font-size: 28px; + font-weight: 600; + line-height: 36px; + margin-bottom: 12px; +} + +.cms-h4 { + font-size: 22px; + font-weight: 600; + line-height: 28px; + margin-bottom: 8px; +} + +.cms-h5 { + font-size: 18px; + font-weight: 500; + line-height: 24px; + margin-bottom: 8px; +} + +.cms-body { + font-size: 16px; + font-weight: 400; + line-height: 24px; + margin-bottom: 8px; +} + +.cms-small { + font-size: 14px; + font-weight: 400; + line-height: 20px; + margin-bottom: 8px; +} + +/* Links */ +.cms-link { + text-decoration: none; + transition: all 150ms ease; +} + +.cms-link:hover { + text-decoration: underline; +} + +/* Buttons */ +.cms-btn { + font-size: 14px; + font-weight: 500; + padding: 8px 16px; + border-radius: 4px; + cursor: pointer; + text-decoration: none; + transition: all 150ms ease; +} + +.cms-btn-disabled { + opacity: 0.6; + cursor: not-allowed; +} + +/* Cards */ +.cms-card { + border-radius: 8px; + box-shadow: 0 4px 8px rgba(0,0,0,0.1); + padding: 16px; + transition: box-shadow 150ms ease; +} + +.cms-card:hover { + box-shadow: 0 8px 16px rgba(0,0,0,0.15); +} + +.cms-card-header { + margin-bottom: 16px; +} + +.cms-card-title { + font-size: 22px; + font-weight: 600; + line-height: 28px; +} + +.cms-card-content { + font-size: 16px; + line-height: 24px; +} + +.cms-card-footer { + margin-top: 16px; +} + +/* Form Elements */ +.cms-form-control { + display: block; + width: 100%; + height: 40px; + padding: 8px 12px; + font-size: 16px; + font-family: var(--font-family); + color: var(--dark-gray); + background-color: var(--white); + border: 1px solid var(--light-gray); + border-radius: 4px; + transition: border-color 150ms ease; + box-sizing: border-box; +} + +.cms-form-control:hover { + border-color: var(--brand-primary); +} + +.cms-form-control:focus { + border: 2px solid var(--brand-primary); + outline: none; +} + +.cms-form-label { + display: block; + font-size: 14px; + font-weight: 600; + margin-bottom: 8px; + color: var(--dark-gray); +} + +.cms-form-select { + display: block; + width: 100%; + height: 40px; + padding: 8px 12px; + font-size: 16px; + font-family: var(--font-family); + color: var(--dark-gray); + background-color: var(--white); + border: 1px solid var(--light-gray); + border-radius: 4px; + appearance: none; + background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\"); + background-repeat: no-repeat; + background-position: right 12px center; + background-size: 16px; + box-sizing: border-box; +} + +.cms-form-select:focus { + outline: none; +} + +.cms-form-textarea { + width: 100%; + min-height: 100px; + padding: 8px 12px; + font-size: 16px; + font-family: var(--font-family); + border-radius: 4px; + resize: vertical; + transition: border-color 150ms ease; + box-sizing: border-box; +} + +.cms-form-textarea:focus { + outline: none; +} + +.cms-form-checkbox, .cms-form-radio { + opacity: 0; + width: 0; + height: 0; +} + +.cms-form-checkbox + label, .cms-form-radio + label { + padding-left: 28px; + cursor: pointer; + font-size: 16px; + line-height: 20px; +} + +.cms-form-checkbox + label:before { + content: ''; + left: 0; + top: 0; + width: 18px; + height: 18px; + border-radius: 4px; +} + +.cms-form-checkbox:checked + label:after { + content: ''; + left: 6px; + top: 2px; + width: 6px; + height: 10px; + border-width: 0 2px 2px 0; + transform: rotate(45deg); +} + +.cms-form-radio + label:before { + content: ''; + left: 0; + top: 0; + width: 18px; + height: 18px; + border-radius: 50%; +} + +.cms-form-radio:checked + label:after { + content: ''; + left: 5px; + top: 5px; + width: 10px; + height: 10px; + border-radius: 50%; +} + +.cms-error-message { + font-size: 14px; + margin-top: 4px; +} + +.cms-success-message { + font-size: 14px; + margin-top: 4px; +} + +/* Media Queries */ +@media (max-width: 768px) { + .cms-h1 { + font-size: 32px; + line-height: 40px; + } + + .cms-h2 { + font-size: 28px; + line-height: 36px; + } + + .cms-h3 { + font-size: 24px; + line-height: 32px; + } + + .cms-btn { + margin-bottom: 8px; + } +} +