@o2vend/theme-cli 1.0.36 → 1.0.38

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.
Files changed (90) hide show
  1. package/README.md +4 -0
  2. package/lib/lib/dev-server.js +344 -48
  3. package/lib/lib/liquid-engine.js +3 -1
  4. package/lib/lib/mock-data.js +473 -119
  5. package/lib/lib/widget-service.js +12 -4
  6. package/package.json +2 -2
  7. package/test-theme/assets/async-sections.js +32 -24
  8. package/test-theme/assets/cart-drawer.js +20 -22
  9. package/test-theme/assets/cart-manager.js +1 -15
  10. package/test-theme/assets/checkout-price-handler.js +12 -11
  11. package/test-theme/assets/checkout.css +1415 -0
  12. package/test-theme/assets/checkout.js +3174 -0
  13. package/test-theme/assets/components.css +178 -29
  14. package/test-theme/assets/delivery-zone.js +1 -1
  15. package/test-theme/assets/product-detail.css +1050 -0
  16. package/test-theme/assets/product-detail.js +2940 -0
  17. package/test-theme/assets/theme.css +95 -120
  18. package/test-theme/assets/theme.js +781 -186
  19. package/test-theme/layout/theme.liquid +91 -17
  20. package/test-theme/sections/content.liquid +64 -57
  21. package/test-theme/sections/footer-fallback.liquid +57 -7
  22. package/test-theme/sections/footer.liquid +63 -12
  23. package/test-theme/sections/header-fallback.liquid +41 -41
  24. package/test-theme/sections/header.liquid +41 -51
  25. package/test-theme/sections/hero-fallback.liquid +1 -1
  26. package/test-theme/sections/hero.liquid +159 -136
  27. package/test-theme/snippets/account-sidebar.liquid +121 -29
  28. package/test-theme/snippets/add-to-cart-modal.liquid +258 -206
  29. package/test-theme/snippets/breadcrumbs.liquid +98 -11
  30. package/test-theme/snippets/cart-drawer.liquid +93 -0
  31. package/test-theme/snippets/delivery-zone-city-selector.liquid +101 -15
  32. package/test-theme/snippets/delivery-zone-modal.liquid +529 -84
  33. package/test-theme/snippets/delivery-zone-search.liquid +104 -18
  34. package/test-theme/snippets/login-modal.liquid +269 -82
  35. package/test-theme/snippets/mega-menu.liquid +130 -43
  36. package/test-theme/snippets/news-thumbnail.liquid +120 -28
  37. package/test-theme/snippets/pagination.liquid +1 -1
  38. package/test-theme/snippets/price.liquid +100 -9
  39. package/test-theme/snippets/product-card-related.liquid +22 -4
  40. package/test-theme/snippets/product-card-simple.liquid +521 -25
  41. package/test-theme/snippets/product-card.liquid +145 -232
  42. package/test-theme/snippets/rating.liquid +100 -9
  43. package/test-theme/snippets/skeleton-collection-grid.liquid +94 -8
  44. package/test-theme/snippets/skeleton-product-card.liquid +102 -16
  45. package/test-theme/snippets/skeleton-product-grid.liquid +87 -1
  46. package/test-theme/snippets/social-sharing.liquid +133 -32
  47. package/test-theme/templates/account/dashboard.liquid +30 -0
  48. package/test-theme/templates/account/loyalty-redemption.liquid +29 -28
  49. package/test-theme/templates/account/loyalty.liquid +45 -43
  50. package/test-theme/templates/account/order-detail.liquid +15 -8
  51. package/test-theme/templates/account/orders.liquid +189 -35
  52. package/test-theme/templates/account/profile.liquid +509 -114
  53. package/test-theme/templates/account/register.liquid +18 -8
  54. package/test-theme/templates/account/return-orders.liquid +31 -30
  55. package/test-theme/templates/account/store-credit.liquid +27 -26
  56. package/test-theme/templates/account/subscriptions.liquid +22 -5
  57. package/test-theme/templates/account/wishlist.liquid +88 -19
  58. package/test-theme/templates/address-book.liquid +166 -69
  59. package/test-theme/templates/categories.liquid +90 -30
  60. package/test-theme/templates/checkout.liquid +137 -3834
  61. package/test-theme/templates/error.liquid +23 -21
  62. package/test-theme/templates/index.liquid +29 -0
  63. package/test-theme/templates/login.liquid +33 -6
  64. package/test-theme/templates/order-confirmation.liquid +67 -9
  65. package/test-theme/templates/page.liquid +418 -206
  66. package/test-theme/templates/product-detail.liquid +124 -3878
  67. package/test-theme/templates/products.liquid +155 -30
  68. package/test-theme/templates/search.liquid +739 -225
  69. package/test-theme/widgets/brand-carousel.liquid +102 -82
  70. package/test-theme/widgets/brand.liquid +78 -50
  71. package/test-theme/widgets/carousel.liquid +253 -121
  72. package/test-theme/widgets/category-list-carousel.liquid +32 -8
  73. package/test-theme/widgets/category-list.liquid +21 -6
  74. package/test-theme/widgets/category.liquid +104 -37
  75. package/test-theme/widgets/discount-time.liquid +326 -119
  76. package/test-theme/widgets/footer-menu.liquid +115 -23
  77. package/test-theme/widgets/footer.liquid +118 -5
  78. package/test-theme/widgets/gallery.liquid +29 -5
  79. package/test-theme/widgets/header-menu.liquid +25 -13
  80. package/test-theme/widgets/header.liquid +64 -26
  81. package/test-theme/widgets/html.liquid +29 -6
  82. package/test-theme/widgets/news.liquid +6 -0
  83. package/test-theme/widgets/product-canvas.liquid +20 -12
  84. package/test-theme/widgets/product-carousel.liquid +118 -56
  85. package/test-theme/widgets/shared/product-grid.liquid +12 -0
  86. package/test-theme/widgets/single-product.liquid +688 -250
  87. package/test-theme/widgets/spacebar-carousel.liquid +39 -10
  88. package/test-theme/widgets/spacebar.liquid +77 -6
  89. package/test-theme/widgets/splash.liquid +40 -30
  90. package/test-theme/widgets/testimonial-carousel.liquid +111 -67
@@ -1,136 +1,159 @@
1
- {% comment %}
2
- Hero Section
3
-
4
- This section renders widgets from the "hero" section in order.
5
- Widgets are rendered one below another, sorted by Position field.
6
- Supports drag-and-drop ordering in visual editor.
7
- {% endcomment %}
8
-
9
- {% comment %}Hero Section - Always render, with widgets or fallback{% endcomment %}
10
- {% assign hero_widgets = widgets.hero %}
11
- {% if hero_widgets and hero_widgets.size > 0 %}
12
- <section class="theme-section theme-section--hero" data-section="hero" data-section-id="{{ section.id }}">
13
- {% for widget in hero_widgets %}
14
- <div class="theme-widget-wrapper"
15
- data-widget-id="{{ widget.id }}"
16
- data-widget-type="{{ widget.type }}"
17
- data-widget-position="{{ widget.Position | default: widget.position | default: forloop.index }}">
18
- {{ widget | render_widget }}
19
- </div>
20
- {% endfor %}
21
- </section>
22
- <style>
23
- .theme-section--hero .theme-widget-wrapper {
24
- display: block;
25
- }
26
- .widget-error {
27
- padding: 1rem;
28
- background: #fee2e2;
29
- border: 1px solid #fecaca;
30
- border-radius: 0.5rem;
31
- color: #991b1b;
32
- font-size: 0.875rem;
33
- }
34
- </style>
35
- {% else %}
36
- {% render 'sections/hero-fallback' %}
37
- {% endif %}
38
-
39
- {% schema %}
40
- {
41
- "name": "Hero",
42
- "settings": [
43
- {
44
- "type": "paragraph",
45
- "content": "This section displays widgets from the 'hero' section. Widgets are automatically ordered by their Position field and can be reordered in the visual editor."
46
- },
47
- {
48
- "type": "image_picker",
49
- "id": "hero_image",
50
- "label": "Hero Image",
51
- "info": "Recommended size: 1920x800px"
52
- },
53
- {
54
- "type": "text",
55
- "id": "hero_title",
56
- "label": "Hero Title",
57
- "default": "Welcome to Our Store"
58
- },
59
- {
60
- "type": "textarea",
61
- "id": "hero_subtitle",
62
- "label": "Hero Subtitle",
63
- "default": "Discover amazing products at great prices"
64
- },
65
- {
66
- "type": "text",
67
- "id": "hero_button_text",
68
- "label": "Primary Button Text",
69
- "default": "Shop Now"
70
- },
71
- {
72
- "type": "url",
73
- "id": "hero_button_url",
74
- "label": "Primary Button URL",
75
- "default": "/collections/all"
76
- },
77
- {
78
- "type": "text",
79
- "id": "hero_button_2_text",
80
- "label": "Secondary Button Text"
81
- },
82
- {
83
- "type": "url",
84
- "id": "hero_button_2_url",
85
- "label": "Secondary Button URL"
86
- },
87
- {
88
- "type": "select",
89
- "id": "text_position",
90
- "label": "Text Position",
91
- "options": [
92
- {
93
- "value": "left",
94
- "label": "Left"
95
- },
96
- {
97
- "value": "center",
98
- "label": "Center"
99
- },
100
- {
101
- "value": "right",
102
- "label": "Right"
103
- }
104
- ],
105
- "default": "center"
106
- },
107
- {
108
- "type": "color",
109
- "id": "text_color",
110
- "label": "Text Color",
111
- "default": "#ffffff"
112
- },
113
- {
114
- "type": "range",
115
- "id": "overlay_opacity",
116
- "label": "Overlay Opacity",
117
- "min": 0,
118
- "max": 0.8,
119
- "step": 0.1,
120
- "default": 0.4
121
- }
122
- ],
123
- "presets": [
124
- {
125
- "name": "Hero",
126
- "settings": {
127
- "hero_title": "Welcome to Our Store",
128
- "hero_subtitle": "Discover amazing products at great prices",
129
- "hero_button_text": "Shop Now",
130
- "hero_button_url": "/collections/all"
131
- }
132
- }
133
- ]
134
- }
135
- {% endschema %}
136
-
1
+ {% comment %}
2
+ Hero Section
3
+
4
+ This section renders widgets from the "hero" section in order.
5
+ Widgets are rendered one below another, sorted by Position field.
6
+ Supports drag-and-drop ordering in visual editor.
7
+ {% endcomment %}
8
+
9
+ {% comment %}Hero Section - Always render, with widgets or fallback{% endcomment %}
10
+ {% assign hero_widgets = widgets.hero %}
11
+
12
+ {%- comment -%}
13
+ If other sections (content, main, sidebar, footer, header) have widgets,
14
+ we don't want to show the hero fallback when hero is empty.
15
+ {%- endcomment -%}
16
+ {% assign other_widget_sections = 'content,main,sidebar,footer,header' | split: ',' %}
17
+ {% assign has_other_widgets = false %}
18
+ {% for s in other_widget_sections %}
19
+ {% assign group = widgets[s] %}
20
+ {% if group and group.size > 0 %}
21
+ {% assign has_other_widgets = true %}
22
+ {% endif %}
23
+ {% endfor %}
24
+
25
+ {% if hero_widgets and hero_widgets.size > 0 %}
26
+ <section class="theme-section theme-section--hero" data-section="hero" data-section-id="{{ section.id }}">
27
+ {% for widget in hero_widgets %}
28
+ <div class="theme-widget-wrapper"
29
+ data-widget-id="{{ widget.id }}"
30
+ data-widget-type="{{ widget.type }}"
31
+ data-widget-position="{{ widget.Position | default: widget.position | default: forloop.index }}">
32
+ {% if widget and widget.template_path %}
33
+ {% render widget.template_path, widget: widget, settings: settings, shop: shop, is_hero_first: forloop.first %}
34
+ {% else %}
35
+ <div class="widget-error" data-widget-error>
36
+ <p>Widget template not found: {{ widget.template_path | default: 'unknown' }}</p>
37
+ <p>Widget type: {{ widget.type | default: 'unknown' }}</p>
38
+ </div>
39
+ {% endif %}
40
+ </div>
41
+ {% endfor %}
42
+ </section>
43
+ <style>
44
+ .theme-section--hero .theme-widget-wrapper {
45
+ display: block;
46
+ }
47
+ .widget-error {
48
+ padding: 1rem;
49
+ background: #fee2e2;
50
+ border: 1px solid #fecaca;
51
+ border-radius: 0.5rem;
52
+ color: #991b1b;
53
+ font-size: 0.875rem;
54
+ }
55
+ </style>
56
+ {% elsif has_other_widgets %}
57
+ {%- comment -%} hero empty but other sections have widgets -> render nothing here {%- endcomment -%}
58
+ {% else %}
59
+ {% render 'sections/hero-fallback' %}
60
+ {% endif %}
61
+
62
+ {% schema %}
63
+ {
64
+ "name": "Hero",
65
+ "settings": [
66
+ {
67
+ "type": "paragraph",
68
+ "content": "This section displays widgets from the 'hero' section. Widgets are automatically ordered by their Position field and can be reordered in the visual editor."
69
+ },
70
+ {
71
+ "type": "image_picker",
72
+ "id": "hero_image",
73
+ "label": "Hero Image",
74
+ "info": "Recommended size: 1920x800px"
75
+ },
76
+ {
77
+ "type": "text",
78
+ "id": "hero_title",
79
+ "label": "Hero Title",
80
+ "default": "Welcome to Our Store"
81
+ },
82
+ {
83
+ "type": "textarea",
84
+ "id": "hero_subtitle",
85
+ "label": "Hero Subtitle",
86
+ "default": "Discover amazing products at great prices"
87
+ },
88
+ {
89
+ "type": "text",
90
+ "id": "hero_button_text",
91
+ "label": "Primary Button Text",
92
+ "default": "Shop Now"
93
+ },
94
+ {
95
+ "type": "url",
96
+ "id": "hero_button_url",
97
+ "label": "Primary Button URL",
98
+ "default": "/categories"
99
+ },
100
+ {
101
+ "type": "text",
102
+ "id": "hero_button_2_text",
103
+ "label": "Secondary Button Text"
104
+ },
105
+ {
106
+ "type": "url",
107
+ "id": "hero_button_2_url",
108
+ "label": "Secondary Button URL"
109
+ },
110
+ {
111
+ "type": "select",
112
+ "id": "text_position",
113
+ "label": "Text Position",
114
+ "options": [
115
+ {
116
+ "value": "left",
117
+ "label": "Left"
118
+ },
119
+ {
120
+ "value": "center",
121
+ "label": "Center"
122
+ },
123
+ {
124
+ "value": "right",
125
+ "label": "Right"
126
+ }
127
+ ],
128
+ "default": "center"
129
+ },
130
+ {
131
+ "type": "color",
132
+ "id": "text_color",
133
+ "label": "Text Color",
134
+ "default": "#ffffff"
135
+ },
136
+ {
137
+ "type": "range",
138
+ "id": "overlay_opacity",
139
+ "label": "Overlay Opacity",
140
+ "min": 0,
141
+ "max": 0.8,
142
+ "step": 0.1,
143
+ "default": 0.4
144
+ }
145
+ ],
146
+ "presets": [
147
+ {
148
+ "name": "Hero",
149
+ "settings": {
150
+ "hero_title": "Welcome to Our Store",
151
+ "hero_subtitle": "Discover amazing products at great prices",
152
+ "hero_button_text": "Shop Now",
153
+ "hero_button_url": "/categories"
154
+ }
155
+ }
156
+ ]
157
+ }
158
+ {% endschema %}
159
+
@@ -28,19 +28,111 @@
28
28
  </div>
29
29
  </nav>
30
30
 
31
- <style>/* ===============================
31
+ <style>
32
+ :root {
33
+ --color-primary: {{ settings.color_primary | default: '#000000' }};
34
+ --color-primary-hover: {{ settings.color_primary_dark | default: '#333333' }};
35
+ --color-primary-light: {{ settings.color_primary_light | default: '#666666' }};
36
+ --color-success: {{ settings.color_success | default: '#22c55e' }};
37
+ --color-success-light: {{ settings.color_success | default: '#22c55e' }};
38
+ --color-success-dark: {{ settings.color_success | default: '#22c55e' }};
39
+ --color-danger: {{ settings.color_error | default: '#ef4444' }};
40
+ --color-danger-light: {{ settings.color_error | default: '#ef4444' }};
41
+ --color-danger-dark: {{ settings.color_error | default: '#ef4444' }};
42
+ --color-text: {{ settings.color_text | default: '#000000' }};
43
+ --color-text-light: {{ settings.color_text_light | default: '#999999' }};
44
+ --color-text-muted: {{ settings.color_text_muted | default: '#666666' }};
45
+ --color-background: {{ settings.color_background | default: '#ffffff' }};
46
+ --color-card-bg: {{ settings.color_surface | default: '#f5f5f5' }};
47
+ --color-border: {{ settings.color_border | default: '#cccccc' }};
48
+ --color-border-light: {{ settings.color_surface | default: '#f5f5f5' }};
49
+ --color-white: #ffffff;
50
+ --color-black: {{ settings.color_primary_dark | default: '#333333' }};
51
+ --color-gray-25: {{ settings.color_background | default: '#ffffff' }};
52
+ --color-gray-50: {{ settings.color_surface | default: '#f5f5f5' }};
53
+ --color-gray-100: {{ settings.color_surface | default: '#f5f5f5' }};
54
+ --color-gray-200: {{ settings.color_border | default: '#cccccc' }};
55
+ --color-gray-300: {{ settings.color_border | default: '#cccccc' }};
56
+ --color-gray-400: {{ settings.color_text_muted | default: '#666666' }};
57
+ --color-gray-500: {{ settings.color_text_muted | default: '#666666' }};
58
+ --color-gray-600: {{ settings.color_text_muted | default: '#666666' }};
59
+ --color-gray-700: {{ settings.color_text | default: '#000000' }};
60
+ --color-gray-800: {{ settings.color_text | default: '#000000' }};
61
+ --color-gray-900: {{ settings.color_text | default: '#000000' }};
62
+ /* Shadow variables - mapped from settings */
63
+ --shadow-opacity: {{ settings.shadow_opacity | default: 0.1 }};
64
+ --shadow-blur: {{ settings.shadow_blur | default: 8 }}px;
65
+ --shadow-spread: {{ settings.shadow_spread | default: 0 }}px;
66
+
67
+ /* Border radius - mapped from settings */
68
+ --radius-sm: {{ settings.border_radius_small | default: 6 }}px;
69
+ --radius-md: {{ settings.border_radius_medium | default: 10 }}px;
70
+ --radius-lg: {{ settings.border_radius_large | default: 16 }}px;
71
+ --radius-xl: 24px;
72
+ --radius-2xl: 32px;
73
+ --radius-full: 9999px;
74
+
75
+ /* Spacing - mapped from settings */
76
+ --spacing-xs: {{ settings.spacing_xsmall | default: 4 }}px;
77
+ --spacing-sm: {{ settings.spacing_small | default: 8 }}px;
78
+ --spacing-md: {{ settings.spacing_element | default: 16 }}px;
79
+ --spacing-lg: {{ settings.spacing_component | default: 24 }}px;
80
+ --spacing-xl: {{ settings.spacing_large | default: 32 }}px;
81
+
82
+ /* Typography - mapped from settings */
83
+ --font-primary: {{ settings.font_primary | default: '' }}, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
84
+ --font-heading: {{ settings.font_heading | default: '' }}, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
85
+ --font-display: {{ settings.font_display | default: '' }}, 'Georgia', 'Times New Roman', serif;
86
+ --font-body: {{ settings.font_body | default: '' }}, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
87
+ --font-weight-bold: {{ settings.font_weight_bold | default: 700 }};
88
+ --font-weight-medium: {{ settings.font_weight_medium | default: 500 }};
89
+ --line-height-heading: {{ settings.line_height_heading | default: 1.2 }};
90
+
91
+ /* Text sizes - based on font_size_base from settings (12px, 14px, 14px, 16px, 18px, 21px) */
92
+ --text-xs: 12px;
93
+ --text-sm: {{ settings.font_size_base | default: 14 }}px;
94
+ --text-base: {{ settings.font_size_base | default: 14 }}px;
95
+ --text-lg: 16px;
96
+ --text-xl: 18px;
97
+ --text-2xl: 21px;
98
+
99
+ /* Transitions - mapped from settings */
100
+ --transition-fast: 133ms cubic-bezier(0, 0, 0.2, 1);
101
+ --transition: {{ settings.button_transition_speed | default: 200 }}ms cubic-bezier(0, 0, 0.2, 1);
102
+ --transition-slow: 300ms cubic-bezier(0, 0, 0.2, 1);
103
+ --duration-150: 150ms;
104
+ --duration-300: 300ms;
105
+ --ease-out: cubic-bezier(0, 0, 0.2, 1);
106
+ --ease-in: cubic-bezier(0.4, 0, 1, 1);
107
+ --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
108
+
109
+ /* Z-index values */
110
+ --z-10: 10;
111
+ --z-modal: 1050;
112
+ --z-dropdown: 1000;
113
+
114
+ /* Line heights - mapped from settings */
115
+ --leading-none: 1;
116
+ --leading-normal: {{ settings.line_height_base | default: 1.6 }};
117
+ --leading-snug: 1.375;
118
+
119
+ /* Letter spacing - mapped from settings */
120
+ --tracking-wider: {{ settings.letter_spacing_uppercase | default: 0.05 }}em;
121
+ }
122
+
123
+ /* ===============================
32
124
  Account Menu Toggle Button
33
125
  ================================ */
34
126
  .account-menu-toggle {
35
127
  display: none;
36
128
  align-items: center;
37
- gap: 8px;
38
- background: white;
39
- color: black;
40
- padding: 12px 16px;
41
- border-radius: 10px;
129
+ gap: var(--space-2);
130
+ background: var(--color-white);
131
+ color: var(--color-black);
132
+ padding: var(--space-3) var(--space-4);
133
+ border-radius: var(--radius-xl);
42
134
  border: none;
43
- font-size: 15px;
135
+ font-size: var(--text-lg);
44
136
  font-weight: 500;
45
137
  cursor: pointer;
46
138
  z-index: 9997;
@@ -53,10 +145,10 @@
53
145
  position: fixed;
54
146
  inset: 0;
55
147
  background: rgba(0, 0, 0, 0.45);
56
- backdrop-filter: blur(4px);
148
+ backdrop-filter: blur(var(--space-1));
57
149
  opacity: 0;
58
150
  visibility: hidden;
59
- transition: opacity 0.35s ease, visibility 0.35s ease;
151
+ transition: opacity var(--duration-300) var(--ease-out), visibility var(--duration-300) var(--ease-out);
60
152
  z-index: 9998;
61
153
  }
62
154
 
@@ -76,9 +168,9 @@
76
168
  display: flex;
77
169
  align-items: center;
78
170
  justify-content: space-between;
79
- padding-bottom: 16px;
80
- border-bottom: 1px solid #eee;
81
- font-size: 18px;
171
+ padding-bottom: var(--space-4);
172
+ border-bottom: 1px solid var(--color-gray-200);
173
+ font-size: var(--text-xl);
82
174
  font-weight: 600;
83
175
  }
84
176
 
@@ -87,36 +179,36 @@
87
179
  display: none;
88
180
  background: none;
89
181
  border: none;
90
- font-size: 22px;
182
+ font-size: var(--text-2xl);
91
183
  cursor: pointer;
92
- line-height: 1;
184
+ line-height: var(--leading-none);
93
185
  }
94
186
 
95
187
  /* ===============================
96
188
  Sidebar Links
97
189
  ================================ */
98
190
  .account-nav-links {
99
- margin-top: 16px;
191
+ margin-top: var(--space-4);
100
192
  display: flex;
101
193
  flex-direction: column;
102
194
  }
103
195
 
104
196
  .account-nav-link {
105
- padding: 14px 14px;
106
- border-radius: 10px;
107
- font-size: 15px;
108
- color: #333;
197
+ padding: var(--space-3-5) var(--space-3-5);
198
+ border-radius: var(--radius-xl);
199
+ font-size: var(--text-lg);
200
+ color: var(--color-gray-700);
109
201
  text-decoration: none;
110
- transition: background 0.25s ease, color 0.25s ease;
202
+ transition: background var(--transition-slow), color var(--transition-slow);
111
203
  }
112
204
 
113
205
  .account-nav-link:hover {
114
- background: #f5f5f5;
206
+ background: var(--color-gray-50);
115
207
  }
116
208
 
117
209
  .account-nav-link.active {
118
- background: #111;
119
- color: #fff;
210
+ background: var(--color-gray-900);
211
+ color: var(--color-white);
120
212
  }
121
213
 
122
214
  /* ===============================
@@ -137,10 +229,10 @@
137
229
  left: 0;
138
230
  width: 300px;
139
231
  height: 100vh;
140
- background: #fff;
141
- padding: 20px;
232
+ background: var(--color-white);
233
+ padding: var(--space-5);
142
234
  transform: translateX(-100%);
143
- transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
235
+ transition: transform var(--transition-slow) var(--ease-in-out);
144
236
  box-shadow: 6px 0 25px rgba(0, 0, 0, 0.15);
145
237
  overflow-y: auto;
146
238
  }
@@ -165,11 +257,11 @@
165
257
  .account-nav-header {
166
258
  position: sticky;
167
259
  top: 0;
168
- background: #fff;
169
- z-index: 1;
260
+ background: var(--color-white);
261
+ z-index: var(--z-10);
170
262
  }
171
263
  .account-sidebar {
172
- z-index:999;
264
+ z-index: var(--z-modal);
173
265
  }
174
266
  }
175
267