diff --git a/src/assets/scss/abstracts/_mixins.scss b/src/assets/scss/abstracts/_mixins.scss index 34a04f4..073986f 100644 --- a/src/assets/scss/abstracts/_mixins.scss +++ b/src/assets/scss/abstracts/_mixins.scss @@ -30,7 +30,12 @@ } // Grid utilities -@mixin grid-responsive($columns-mobile: 1, $columns-tablet: 2, $columns-desktop: 3, $gap: $spacing-md) { +@mixin grid-responsive( + $columns-mobile: 1, + $columns-tablet: 2, + $columns-desktop: 3, + $gap: $spacing-md +) { display: grid; gap: $gap; grid-template-columns: repeat($columns-mobile, 1fr); @@ -178,4 +183,4 @@ overflow: hidden; text-overflow: ellipsis; white-space: nowrap; -} \ No newline at end of file +} diff --git a/src/assets/scss/abstracts/_variables.scss b/src/assets/scss/abstracts/_variables.scss index d8dc78a..2930738 100644 --- a/src/assets/scss/abstracts/_variables.scss +++ b/src/assets/scss/abstracts/_variables.scss @@ -66,9 +66,15 @@ $radius-2xl: 1.5rem; // Shadows $shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05); -$shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); -$shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); -$shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); +$shadow-md: + 0 4px 6px -1px rgba(0, 0, 0, 0.1), + 0 2px 4px -1px rgba(0, 0, 0, 0.06); +$shadow-lg: + 0 10px 15px -3px rgba(0, 0, 0, 0.1), + 0 4px 6px -2px rgba(0, 0, 0, 0.05); +$shadow-xl: + 0 20px 25px -5px rgba(0, 0, 0, 0.1), + 0 10px 10px -5px rgba(0, 0, 0, 0.04); // Transitions $transition-fast: 150ms ease-in-out; @@ -80,4 +86,4 @@ $breakpoint-sm: 640px; $breakpoint-md: 768px; $breakpoint-lg: 1024px; $breakpoint-xl: 1280px; -$breakpoint-2xl: 1536px; \ No newline at end of file +$breakpoint-2xl: 1536px; diff --git a/src/assets/scss/base/_typography.scss b/src/assets/scss/base/_typography.scss index 423a125..0f18149 100644 --- a/src/assets/scss/base/_typography.scss +++ b/src/assets/scss/base/_typography.scss @@ -1,5 +1,10 @@ // Typography Styles -h1, h2, h3, h4, h5, h6 { +h1, +h2, +h3, +h4, +h5, +h6 { margin: 0; font-weight: 600; } @@ -40,17 +45,41 @@ p { } // Text utilities -.text-xs { font-size: 0.75rem; } -.text-sm { font-size: 0.875rem; } -.text-base { font-size: 1rem; } -.text-lg { font-size: 1.125rem; } -.text-xl { font-size: 1.25rem; } -.text-2xl { font-size: 1.5rem; } +.text-xs { + font-size: 0.75rem; +} +.text-sm { + font-size: 0.875rem; +} +.text-base { + font-size: 1rem; +} +.text-lg { + font-size: 1.125rem; +} +.text-xl { + font-size: 1.25rem; +} +.text-2xl { + font-size: 1.5rem; +} -.font-medium { font-weight: 500; } -.font-semibold { font-weight: 600; } -.font-bold { font-weight: 700; } +.font-medium { + font-weight: 500; +} +.font-semibold { + font-weight: 600; +} +.font-bold { + font-weight: 700; +} -.text-center { text-align: center; } -.text-left { text-align: left; } -.text-right { text-align: right; } \ No newline at end of file +.text-center { + text-align: center; +} +.text-left { + text-align: left; +} +.text-right { + text-align: right; +} diff --git a/src/assets/scss/components/_buttons.scss b/src/assets/scss/components/_buttons.scss index a61fdb8..eb21621 100644 --- a/src/assets/scss/components/_buttons.scss +++ b/src/assets/scss/components/_buttons.scss @@ -130,4 +130,4 @@ height: 1.25rem; color: $gray-400; } -} \ No newline at end of file +} diff --git a/src/assets/scss/components/_cards.scss b/src/assets/scss/components/_cards.scss index 72cafc6..43fe338 100644 --- a/src/assets/scss/components/_cards.scss +++ b/src/assets/scss/components/_cards.scss @@ -449,4 +449,4 @@ .sensor-security { @include sensor-type-style($sensor-security-bg, $sensor-security-text); -} \ No newline at end of file +} diff --git a/src/assets/scss/components/_forms.scss b/src/assets/scss/components/_forms.scss index bc9fcd0..77a70c0 100644 --- a/src/assets/scss/components/_forms.scss +++ b/src/assets/scss/components/_forms.scss @@ -44,4 +44,4 @@ // Custom Range Input .range-slider { @include custom-slider; -} \ No newline at end of file +} diff --git a/src/assets/scss/components/_modals.scss b/src/assets/scss/components/_modals.scss index 14e523b..b4e8945 100644 --- a/src/assets/scss/components/_modals.scss +++ b/src/assets/scss/components/_modals.scss @@ -253,4 +253,4 @@ } } } -} \ No newline at end of file +} diff --git a/src/assets/scss/layouts/_dashboard.scss b/src/assets/scss/layouts/_dashboard.scss index eb86912..a1cf387 100644 --- a/src/assets/scss/layouts/_dashboard.scss +++ b/src/assets/scss/layouts/_dashboard.scss @@ -24,4 +24,4 @@ margin-top: $spacing-xl; } } -} \ No newline at end of file +} diff --git a/src/assets/scss/layouts/_grid.scss b/src/assets/scss/layouts/_grid.scss index de77cec..6bd67a5 100644 --- a/src/assets/scss/layouts/_grid.scss +++ b/src/assets/scss/layouts/_grid.scss @@ -2,14 +2,28 @@ .grid { display: grid; - &--1 { grid-template-columns: 1fr; } - &--2 { grid-template-columns: repeat(2, 1fr); } - &--3 { grid-template-columns: repeat(3, 1fr); } - &--4 { grid-template-columns: repeat(4, 1fr); } + &--1 { + grid-template-columns: 1fr; + } + &--2 { + grid-template-columns: repeat(2, 1fr); + } + &--3 { + grid-template-columns: repeat(3, 1fr); + } + &--4 { + grid-template-columns: repeat(4, 1fr); + } - &--gap-2 { gap: $spacing-sm; } - &--gap-4 { gap: $spacing-md; } - &--gap-6 { gap: $spacing-lg; } + &--gap-2 { + gap: $spacing-sm; + } + &--gap-4 { + gap: $spacing-md; + } + &--gap-6 { + gap: $spacing-lg; + } // Responsive grids &--responsive-simple { @@ -45,8 +59,16 @@ flex-wrap: wrap; } - &--gap-1 { gap: $spacing-xs; } - &--gap-2 { gap: $spacing-sm; } - &--gap-3 { gap: $spacing-md; } - &--gap-4 { gap: $spacing-lg; } -} \ No newline at end of file + &--gap-1 { + gap: $spacing-xs; + } + &--gap-2 { + gap: $spacing-sm; + } + &--gap-3 { + gap: $spacing-md; + } + &--gap-4 { + gap: $spacing-lg; + } +} diff --git a/src/assets/scss/pages/_home.scss b/src/assets/scss/pages/_home.scss index cf9c716..08c8034 100644 --- a/src/assets/scss/pages/_home.scss +++ b/src/assets/scss/pages/_home.scss @@ -164,4 +164,4 @@ height: 2rem; // Chart styling handled by chart library } -} \ No newline at end of file +} diff --git a/src/assets/scss/pages/_sensor-management.scss b/src/assets/scss/pages/_sensor-management.scss index 55ce86e..beccf77 100644 --- a/src/assets/scss/pages/_sensor-management.scss +++ b/src/assets/scss/pages/_sensor-management.scss @@ -111,4 +111,4 @@ color: $gray-600; } } -} \ No newline at end of file +} diff --git a/src/assets/scss/utilities/_helpers.scss b/src/assets/scss/utilities/_helpers.scss index 88d43dc..691a6f4 100644 --- a/src/assets/scss/utilities/_helpers.scss +++ b/src/assets/scss/utilities/_helpers.scss @@ -12,98 +12,226 @@ } // Spacing utilities -.space-y-2 > * + * { margin-top: $spacing-sm; } -.space-y-3 > * + * { margin-top: $spacing-md; } -.space-y-4 > * + * { margin-top: $spacing-lg; } -.space-y-6 > * + * { margin-top: $spacing-xl; } +.space-y-2 > * + * { + margin-top: $spacing-sm; +} +.space-y-3 > * + * { + margin-top: $spacing-md; +} +.space-y-4 > * + * { + margin-top: $spacing-lg; +} +.space-y-6 > * + * { + margin-top: $spacing-xl; +} -.space-x-2 > * + * { margin-left: $spacing-sm; } -.space-x-3 > * + * { margin-left: $spacing-md; } -.space-x-4 > * + * { margin-left: $spacing-lg; } +.space-x-2 > * + * { + margin-left: $spacing-sm; +} +.space-x-3 > * + * { + margin-left: $spacing-md; +} +.space-x-4 > * + * { + margin-left: $spacing-lg; +} // Margin utilities -.m-0 { margin: 0; } -.mb-1 { margin-bottom: $spacing-xs; } -.mb-2 { margin-bottom: $spacing-sm; } -.mb-3 { margin-bottom: $spacing-md; } -.mb-4 { margin-bottom: $spacing-lg; } +.m-0 { + margin: 0; +} +.mb-1 { + margin-bottom: $spacing-xs; +} +.mb-2 { + margin-bottom: $spacing-sm; +} +.mb-3 { + margin-bottom: $spacing-md; +} +.mb-4 { + margin-bottom: $spacing-lg; +} -.mt-1 { margin-top: $spacing-xs; } -.mt-2 { margin-top: $spacing-sm; } -.mt-3 { margin-top: $spacing-md; } -.mt-4 { margin-top: $spacing-lg; } +.mt-1 { + margin-top: $spacing-xs; +} +.mt-2 { + margin-top: $spacing-sm; +} +.mt-3 { + margin-top: $spacing-md; +} +.mt-4 { + margin-top: $spacing-lg; +} -// Padding utilities -.p-0 { padding: 0; } -.p-1 { padding: $spacing-xs; } -.p-2 { padding: $spacing-sm; } -.p-3 { padding: $spacing-md; } -.p-4 { padding: $spacing-lg; } +// Padding utilities +.p-0 { + padding: 0; +} +.p-1 { + padding: $spacing-xs; +} +.p-2 { + padding: $spacing-sm; +} +.p-3 { + padding: $spacing-md; +} +.p-4 { + padding: $spacing-lg; +} // Width utilities -.w-full { width: 100%; } -.w-auto { width: auto; } +.w-full { + width: 100%; +} +.w-auto { + width: auto; +} // Height utilities -.h-full { height: 100%; } -.h-auto { height: auto; } +.h-full { + height: 100%; +} +.h-auto { + height: auto; +} // Color utilities -.text-primary { color: $primary; } -.text-secondary { color: $secondary; } -.text-success { color: $success; } -.text-warning { color: $warning; } -.text-danger { color: $danger; } +.text-primary { + color: $primary; +} +.text-secondary { + color: $secondary; +} +.text-success { + color: $success; +} +.text-warning { + color: $warning; +} +.text-danger { + color: $danger; +} -.text-gray-400 { color: $gray-400; } -.text-gray-500 { color: $gray-500; } -.text-gray-600 { color: $gray-600; } -.text-gray-700 { color: $gray-700; } -.text-gray-900 { color: $gray-900; } +.text-gray-400 { + color: $gray-400; +} +.text-gray-500 { + color: $gray-500; +} +.text-gray-600 { + color: $gray-600; +} +.text-gray-700 { + color: $gray-700; +} +.text-gray-900 { + color: $gray-900; +} // Background utilities -.bg-primary { background-color: $primary; } -.bg-white { background-color: white; } -.bg-gray-50 { background-color: $gray-50; } -.bg-gray-100 { background-color: $gray-100; } +.bg-primary { + background-color: $primary; +} +.bg-white { + background-color: white; +} +.bg-gray-50 { + background-color: $gray-50; +} +.bg-gray-100 { + background-color: $gray-100; +} // Border utilities -.border { border: 1px solid $gray-200; } -.border-0 { border: 0; } -.border-gray-100 { border-color: $gray-100; } -.border-gray-200 { border-color: $gray-200; } +.border { + border: 1px solid $gray-200; +} +.border-0 { + border: 0; +} +.border-gray-100 { + border-color: $gray-100; +} +.border-gray-200 { + border-color: $gray-200; +} // Border radius utilities -.rounded { border-radius: $radius-md; } -.rounded-lg { border-radius: $radius-lg; } -.rounded-xl { border-radius: $radius-xl; } -.rounded-2xl { border-radius: $radius-2xl; } -.rounded-full { border-radius: 9999px; } +.rounded { + border-radius: $radius-md; +} +.rounded-lg { + border-radius: $radius-lg; +} +.rounded-xl { + border-radius: $radius-xl; +} +.rounded-2xl { + border-radius: $radius-2xl; +} +.rounded-full { + border-radius: 9999px; +} // Shadow utilities -.shadow-sm { box-shadow: $shadow-sm; } -.shadow-md { box-shadow: $shadow-md; } -.shadow-lg { box-shadow: $shadow-lg; } -.shadow-xl { box-shadow: $shadow-xl; } +.shadow-sm { + box-shadow: $shadow-sm; +} +.shadow-md { + box-shadow: $shadow-md; +} +.shadow-lg { + box-shadow: $shadow-lg; +} +.shadow-xl { + box-shadow: $shadow-xl; +} // Position utilities -.relative { position: relative; } -.absolute { position: absolute; } -.fixed { position: fixed; } +.relative { + position: relative; +} +.absolute { + position: absolute; +} +.fixed { + position: fixed; +} // Z-index utilities -.z-10 { z-index: 10; } -.z-20 { z-index: 20; } -.z-50 { z-index: 50; } +.z-10 { + z-index: 10; +} +.z-20 { + z-index: 20; +} +.z-50 { + z-index: 50; +} // Overflow utilities -.overflow-hidden { overflow: hidden; } -.overflow-y-auto { overflow-y: auto; } +.overflow-hidden { + overflow: hidden; +} +.overflow-y-auto { + overflow-y: auto; +} // Cursor utilities -.cursor-pointer { cursor: pointer; } -.cursor-not-allowed { cursor: not-allowed; } +.cursor-pointer { + cursor: pointer; +} +.cursor-not-allowed { + cursor: not-allowed; +} // Opacity utilities -.opacity-50 { opacity: 0.5; } -.opacity-75 { opacity: 0.75; } \ No newline at end of file +.opacity-50 { + opacity: 0.5; +} +.opacity-75 { + opacity: 0.75; +} diff --git a/src/components/cards/AirQualityCard.vue b/src/components/cards/AirQualityCard.vue index 92e7298..4c841b8 100644 --- a/src/components/cards/AirQualityCard.vue +++ b/src/components/cards/AirQualityCard.vue @@ -1,7 +1,7 @@