domma-js 0.7.6-alpha → 0.7.8-alpha

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.
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Domma Grayve Theme Preset CSS Bundle v0.7.5-alpha
2
+ * Domma Grayve Theme Preset CSS Bundle v0.7.6-alpha
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-01-08T18:40:14.151Z
5
+ * Built: 2026-01-09T13:59:22.240Z
6
6
  */
7
7
 
8
8
  /* ============================================
@@ -230,11 +230,11 @@
230
230
  ============================================ */
231
231
 
232
232
  /*!
233
- * Domma Core CSS v0.7.5-alpha
233
+ * Domma Core CSS v0.7.6-alpha
234
234
  * Dynamic Object Manipulation & Modeling API
235
235
  * (c) 2026 Darryl Waterhouse & DCBW-IT
236
- * Built: 2026-01-08T18:40:13.837Z
237
- * Commit: 61aa8b6
236
+ * Built: 2026-01-09T13:59:21.897Z
237
+ * Commit: 5527c59
238
238
  */
239
239
 
240
240
  /**
@@ -4235,11 +4235,11 @@ body.dm-cloaked.dm-ready {
4235
4235
  ============================================ */
4236
4236
 
4237
4237
  /*!
4238
- * Domma Grid CSS v0.7.5-alpha
4238
+ * Domma Grid CSS v0.7.6-alpha
4239
4239
  * Dynamic Object Manipulation & Modeling API
4240
4240
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4241
- * Built: 2026-01-08T18:40:13.844Z
4242
- * Commit: 61aa8b6
4241
+ * Built: 2026-01-09T13:59:21.905Z
4242
+ * Commit: 5527c59
4243
4243
  */
4244
4244
 
4245
4245
  /**
@@ -4636,6 +4636,62 @@ body.dm-cloaked.dm-ready {
4636
4636
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
4637
4637
  }
4638
4638
 
4639
+ /* ============================================
4640
+ COLUMN SPAN UTILITIES (for .grid children)
4641
+ ============================================ */
4642
+
4643
+ .col-span-1 {
4644
+ grid-column: span 1 / span 1;
4645
+ }
4646
+
4647
+ .col-span-2 {
4648
+ grid-column: span 2 / span 2;
4649
+ }
4650
+
4651
+ .col-span-3 {
4652
+ grid-column: span 3 / span 3;
4653
+ }
4654
+
4655
+ .col-span-4 {
4656
+ grid-column: span 4 / span 4;
4657
+ }
4658
+
4659
+ .col-span-5 {
4660
+ grid-column: span 5 / span 5;
4661
+ }
4662
+
4663
+ .col-span-6 {
4664
+ grid-column: span 6 / span 6;
4665
+ }
4666
+
4667
+ .col-span-7 {
4668
+ grid-column: span 7 / span 7;
4669
+ }
4670
+
4671
+ .col-span-8 {
4672
+ grid-column: span 8 / span 8;
4673
+ }
4674
+
4675
+ .col-span-9 {
4676
+ grid-column: span 9 / span 9;
4677
+ }
4678
+
4679
+ .col-span-10 {
4680
+ grid-column: span 10 / span 10;
4681
+ }
4682
+
4683
+ .col-span-11 {
4684
+ grid-column: span 11 / span 11;
4685
+ }
4686
+
4687
+ .col-span-12 {
4688
+ grid-column: span 12 / span 12;
4689
+ }
4690
+
4691
+ .col-span-full {
4692
+ grid-column: 1 / -1;
4693
+ }
4694
+
4639
4695
  /* Standalone gap utilities (work with .grid and .row) */
4640
4696
  .gap-0 {
4641
4697
  gap: 0;
@@ -4780,11 +4836,11 @@ body.dm-cloaked.dm-ready {
4780
4836
  ============================================ */
4781
4837
 
4782
4838
  /*!
4783
- * Domma Elements CSS v0.7.5-alpha
4839
+ * Domma Elements CSS v0.7.6-alpha
4784
4840
  * Dynamic Object Manipulation & Modeling API
4785
4841
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4786
- * Built: 2026-01-08T18:40:13.850Z
4787
- * Commit: 61aa8b6
4842
+ * Built: 2026-01-09T13:59:21.912Z
4843
+ * Commit: 5527c59
4788
4844
  */
4789
4845
 
4790
4846
  /**
@@ -7857,47 +7913,120 @@ code {
7857
7913
  SIDEBAR
7858
7914
  ============================================ */
7859
7915
 
7916
+ /* Base Sidebar */
7860
7917
  .sidebar {
7861
- position: fixed;
7862
- bottom: 4px;
7863
- left: 2px;
7864
- width: 220px;
7865
- max-height: 50vh;
7866
- overflow-y: auto;
7918
+ position: relative;
7919
+ width: 250px;
7867
7920
  background: var(--dm-surface, #fff);
7868
- border: 1px solid var(--dm-border, #dee2e6);
7869
- border-radius: var(--dm-radius-lg);
7870
- box-shadow: var(--dm-shadow-lg);
7921
+ border-right: 1px solid var(--dm-border, #dee2e6);
7922
+ overflow-y: auto;
7923
+ overflow-x: hidden;
7924
+ transition: transform 0.3s ease;
7871
7925
  z-index: 100;
7872
7926
  }
7873
7927
 
7928
+ /* Fixed positioning */
7929
+ .sidebar-fixed {
7930
+ position: fixed;
7931
+ top: 0;
7932
+ left: 0;
7933
+ height: 100vh;
7934
+ }
7935
+
7936
+ .sidebar-fixed.sidebar-right {
7937
+ left: auto;
7938
+ right: 0;
7939
+ border-right: none;
7940
+ border-left: 1px solid var(--dm-border, #dee2e6);
7941
+ }
7942
+
7943
+ /* Position variants */
7944
+ .sidebar-left {
7945
+ left: 0;
7946
+ }
7947
+
7948
+ .sidebar-right {
7949
+ right: 0;
7950
+ left: auto;
7951
+ border-right: none;
7952
+ border-left: 1px solid var(--dm-border, #dee2e6);
7953
+ }
7954
+
7955
+ /* Header */
7874
7956
  .sidebar-header {
7875
- padding: var(--dm-space-3) var(--dm-space-3) var(--dm-space-2);
7876
- font-size: var(--dm-font-size-xs);
7877
- font-weight: 600;
7878
- text-transform: uppercase;
7879
- letter-spacing: 0.05em;
7880
- color: var(--dm-gray-500);
7957
+ display: flex;
7958
+ align-items: center;
7959
+ gap: var(--dm-space-3, 0.75rem);
7960
+ padding: var(--dm-space-4, 1rem) var(--dm-space-3, 0.75rem);
7881
7961
  border-bottom: 1px solid var(--dm-border, #dee2e6);
7962
+ background: var(--dm-surface-raised, #f8f9fa);
7963
+ }
7964
+
7965
+ .sidebar-header-icon {
7966
+ flex-shrink: 0;
7967
+ display: inline-flex;
7968
+ align-items: center;
7969
+ justify-content: center;
7970
+ }
7971
+
7972
+ .sidebar-header-title {
7973
+ flex: 1;
7974
+ margin: 0;
7975
+ font-size: var(--dm-font-size-lg, 1.125rem);
7976
+ font-weight: 600;
7977
+ color: var(--dm-text, #212529);
7978
+ }
7979
+
7980
+ .sidebar-toggle-btn {
7981
+ display: none; /* Shown on mobile */
7982
+ flex-shrink: 0;
7983
+ width: 32px;
7984
+ height: 32px;
7985
+ padding: 0;
7986
+ border: none;
7987
+ background: transparent;
7988
+ color: var(--dm-text-muted, #6c757d);
7989
+ border-radius: var(--dm-radius-md, 0.375rem);
7990
+ cursor: pointer;
7991
+ transition: all 0.2s ease;
7992
+ }
7993
+
7994
+ .sidebar-toggle-btn:hover {
7995
+ background: var(--dm-gray-200, #e9ecef);
7996
+ color: var(--dm-text, #212529);
7882
7997
  }
7883
7998
 
7999
+ /* Navigation */
7884
8000
  .sidebar-nav {
8001
+ padding: var(--dm-space-2, 0.5rem) 0;
8002
+ }
8003
+
8004
+ .sidebar-menu {
7885
8005
  list-style: none;
7886
8006
  margin: 0;
7887
- padding: var(--dm-space-2);
8007
+ padding: 0;
8008
+ }
8009
+
8010
+ .sidebar-item {
8011
+ position: relative;
7888
8012
  }
7889
8013
 
8014
+ /* Navigation Links */
7890
8015
  .sidebar-link {
7891
- display: block;
7892
- padding: var(--dm-space-2) var(--dm-space-3);
8016
+ display: flex;
8017
+ align-items: center;
8018
+ gap: var(--dm-space-3, 0.75rem);
8019
+ padding: var(--dm-space-2, 0.5rem) var(--dm-space-4, 1rem);
7893
8020
  color: var(--dm-text-muted, #6c757d);
7894
8021
  text-decoration: none;
7895
- font-size: var(--dm-font-size-sm);
7896
- border-radius: var(--dm-radius-md);
7897
- transition: all 0.15s ease;
7898
- white-space: nowrap;
7899
- overflow: hidden;
7900
- text-overflow: ellipsis;
8022
+ font-size: var(--dm-font-size-sm, 0.875rem);
8023
+ transition: all 0.2s ease;
8024
+ cursor: pointer;
8025
+ border: none;
8026
+ background: transparent;
8027
+ width: 100%;
8028
+ text-align: left;
8029
+ border-left: 3px solid transparent;
7901
8030
  }
7902
8031
 
7903
8032
  .sidebar-link:hover {
@@ -7907,83 +8036,237 @@ code {
7907
8036
  }
7908
8037
 
7909
8038
  .sidebar-link.active {
7910
- color: var(--dm-primary);
7911
- background: var(--dm-primary-bg, rgba(100, 149, 237, 0.1));
8039
+ color: var(--dm-primary, #007bff);
8040
+ background: var(--dm-primary-bg, rgba(0, 123, 255, 0.1));
7912
8041
  font-weight: 500;
8042
+ border-left-color: var(--dm-primary, #007bff);
7913
8043
  }
7914
8044
 
7915
- .showcase-content {
7916
- width: 100%;
8045
+ /* Link elements */
8046
+ .sidebar-icon {
8047
+ flex-shrink: 0;
8048
+ display: inline-flex;
8049
+ align-items: center;
8050
+ justify-content: center;
7917
8051
  }
7918
8052
 
7919
- /* Add left margin on desktop to account for fixed sidebar */
7920
- @media (min-width: 1025px) {
7921
- .showcase-content {
7922
- margin-left: 240px;
7923
- width: calc(100% - 240px);
7924
- }
8053
+ .sidebar-text {
8054
+ flex: 1;
8055
+ white-space: nowrap;
8056
+ overflow: hidden;
8057
+ text-overflow: ellipsis;
7925
8058
  }
7926
8059
 
7927
- /* Sidebar toggle button (mobile) */
7928
-
7929
- .sidebar-toggle {
7930
- display: none;
7931
- position: fixed;
7932
- bottom: var(--dm-space-4);
7933
- left: var(--dm-space-4);
7934
- width: 48px;
7935
- height: 48px;
7936
- border-radius: 50%;
7937
- background: var(--dm-primary);
7938
- color: white;
7939
- border: none;
7940
- cursor: pointer;
7941
- z-index: 1001;
7942
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
7943
- transition: transform 0.2s ease, box-shadow 0.2s ease;
8060
+ .sidebar-badge {
8061
+ flex-shrink: 0;
8062
+ display: inline-flex;
7944
8063
  align-items: center;
7945
8064
  justify-content: center;
8065
+ min-width: 20px;
8066
+ height: 20px;
8067
+ padding: 0 var(--dm-space-2, 0.5rem);
8068
+ font-size: var(--dm-font-size-xs, 0.75rem);
8069
+ font-weight: 600;
8070
+ line-height: 1;
8071
+ color: var(--dm-white, #fff);
8072
+ background: var(--dm-primary, #007bff);
8073
+ border-radius: 10px;
7946
8074
  }
7947
8075
 
7948
- .sidebar-toggle:hover {
7949
- transform: scale(1.05);
7950
- box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25);
8076
+ /* Submenu toggle (has children) */
8077
+ .sidebar-link-toggle {
8078
+ position: relative;
7951
8079
  }
7952
8080
 
7953
- .sidebar-toggle svg {
7954
- width: 24px;
7955
- height: 24px;
8081
+ .sidebar-chevron {
8082
+ flex-shrink: 0;
8083
+ margin-left: auto;
8084
+ transition: transform 0.2s ease;
7956
8085
  }
7957
8086
 
7958
- /* Sidebar overlay (mobile) */
8087
+ .sidebar-item.open > .sidebar-link-toggle .sidebar-chevron {
8088
+ transform: rotate(90deg);
8089
+ }
7959
8090
 
7960
- .sidebar-overlay {
8091
+ /* Submenu container */
8092
+ .sidebar-submenu {
7961
8093
  display: none;
8094
+ overflow: hidden;
8095
+ }
8096
+
8097
+ .sidebar-item.open > .sidebar-submenu {
8098
+ display: block;
8099
+ }
8100
+
8101
+ .sidebar-submenu .sidebar-menu {
8102
+ padding-left: var(--dm-space-4, 1rem);
8103
+ }
8104
+
8105
+ .sidebar-submenu .sidebar-link {
8106
+ padding-left: calc(var(--dm-space-4, 1rem) + var(--dm-space-2, 0.5rem));
8107
+ font-size: var(--dm-font-size-xs, 0.75rem);
8108
+ }
8109
+
8110
+ /* Nested depth indentation */
8111
+ .sidebar-menu[data-depth="1"] .sidebar-link {
8112
+ padding-left: calc(var(--dm-space-4, 1rem) * 2);
8113
+ }
8114
+
8115
+ .sidebar-menu[data-depth="2"] .sidebar-link {
8116
+ padding-left: calc(var(--dm-space-4, 1rem) * 3);
8117
+ }
8118
+
8119
+ .sidebar-menu[data-depth="3"] .sidebar-link {
8120
+ padding-left: calc(var(--dm-space-4, 1rem) * 4);
8121
+ }
8122
+
8123
+ .sidebar-menu[data-depth="4"] .sidebar-link {
8124
+ padding-left: calc(var(--dm-space-4, 1rem) * 5);
8125
+ }
8126
+
8127
+ /* Divider */
8128
+ .sidebar-divider {
8129
+ height: 1px;
8130
+ margin: var(--dm-space-2, 0.5rem) var(--dm-space-4, 1rem);
8131
+ background: var(--dm-border, #dee2e6);
8132
+ list-style: none;
8133
+ }
8134
+
8135
+ /* Section Heading */
8136
+ .sidebar-heading {
8137
+ padding: var(--dm-space-3, 0.75rem) var(--dm-space-4, 1rem) var(--dm-space-2, 0.5rem);
8138
+ font-size: var(--dm-font-size-xs, 0.75rem);
8139
+ font-weight: 600;
8140
+ text-transform: uppercase;
8141
+ letter-spacing: 0.05em;
8142
+ color: var(--dm-gray-500, #6c757d);
8143
+ list-style: none;
8144
+ }
8145
+
8146
+ /* Footer */
8147
+ .sidebar-footer {
8148
+ padding: var(--dm-space-3, 0.75rem) var(--dm-space-4, 1rem);
8149
+ border-top: 1px solid var(--dm-border, #dee2e6);
8150
+ background: var(--dm-surface-raised, #f8f9fa);
8151
+ }
8152
+
8153
+ .sidebar-footer-text {
8154
+ margin: 0;
8155
+ font-size: var(--dm-font-size-xs, 0.75rem);
8156
+ color: var(--dm-text-muted, #6c757d);
8157
+ }
8158
+
8159
+ /* Overlay (mobile) */
8160
+ .sidebar-overlay {
7962
8161
  position: fixed;
7963
8162
  top: 0;
7964
8163
  left: 0;
7965
8164
  right: 0;
7966
8165
  bottom: 0;
7967
8166
  background: rgba(0, 0, 0, 0.5);
7968
- z-index: 999;
8167
+ z-index: 99;
7969
8168
  opacity: 0;
7970
- transition: opacity 0.3s ease;
8169
+ visibility: hidden;
8170
+ transition: opacity 0.3s ease, visibility 0.3s ease;
7971
8171
  }
7972
8172
 
7973
8173
  .sidebar-overlay.active {
7974
8174
  opacity: 1;
8175
+ visibility: visible;
8176
+ }
8177
+
8178
+ /* Theme Variants */
8179
+
8180
+ /* Dark variant */
8181
+ .sidebar-dark {
8182
+ background: var(--dm-gray-900, #212529);
8183
+ border-color: var(--dm-gray-700, #495057);
8184
+ }
8185
+
8186
+ .sidebar-dark .sidebar-header {
8187
+ background: var(--dm-gray-800, #343a40);
8188
+ border-color: var(--dm-gray-700, #495057);
8189
+ }
8190
+
8191
+ .sidebar-dark .sidebar-header-title {
8192
+ color: var(--dm-white, #fff);
8193
+ }
8194
+
8195
+ .sidebar-dark .sidebar-link {
8196
+ color: var(--dm-gray-400, #adb5bd);
8197
+ border-left-color: transparent;
8198
+ }
8199
+
8200
+ .sidebar-dark .sidebar-link:hover {
8201
+ color: var(--dm-white, #fff);
8202
+ background: var(--dm-gray-800, #343a40);
8203
+ }
8204
+
8205
+ .sidebar-dark .sidebar-link.active {
8206
+ color: var(--dm-primary-light, #66b2ff);
8207
+ background: rgba(102, 178, 255, 0.15);
8208
+ border-left-color: var(--dm-primary-light, #66b2ff);
8209
+ }
8210
+
8211
+ .sidebar-dark .sidebar-heading {
8212
+ color: var(--dm-gray-500, #6c757d);
8213
+ }
8214
+
8215
+ .sidebar-dark .sidebar-divider {
8216
+ background: var(--dm-gray-700, #495057);
8217
+ }
8218
+
8219
+ .sidebar-dark .sidebar-footer {
8220
+ background: var(--dm-gray-800, #343a40);
8221
+ border-color: var(--dm-gray-700, #495057);
8222
+ }
8223
+
8224
+ .sidebar-dark .sidebar-footer-text {
8225
+ color: var(--dm-gray-500, #6c757d);
8226
+ }
8227
+
8228
+ /* Light variant (default, explicit) */
8229
+ .sidebar-light {
8230
+ background: var(--dm-white, #fff);
8231
+ border-color: var(--dm-border, #dee2e6);
7975
8232
  }
7976
8233
 
7977
8234
  /* Mobile/Tablet: Slide-out drawer */
7978
8235
  @media (max-width: 768px) {
7979
- .sidebar {
7980
- display: none;
7981
- position: fixed;
7982
- top: 0;
7983
- left: 0;
7984
- bottom: 0;
7985
- width: 260px;
7986
- max-height: 100vh;
8236
+ .sidebar-fixed {
8237
+ transform: translateX(-100%);
8238
+ box-shadow: none;
8239
+ }
8240
+
8241
+ .sidebar-fixed.sidebar-right {
8242
+ transform: translateX(100%);
8243
+ }
8244
+
8245
+ .sidebar-fixed.open {
8246
+ transform: translateX(0);
8247
+ box-shadow: var(--dm-shadow-xl, 0 10px 40px rgba(0,0,0,0.2));
8248
+ }
8249
+
8250
+ .sidebar-toggle-btn {
8251
+ display: flex;
8252
+ align-items: center;
8253
+ justify-content: center;
8254
+ }
8255
+
8256
+ .sidebar-overlay {
8257
+ display: block;
8258
+ }
8259
+ }
8260
+
8261
+ /* Showcase-specific overrides (for backward compatibility) */
8262
+ .showcase-content {
8263
+ width: 100%;
8264
+ }
8265
+
8266
+ @media (min-width: 1025px) {
8267
+ .showcase-content {
8268
+ margin-left: 240px;
8269
+ width: calc(100% - 240px);
7987
8270
  }
7988
8271
  }
7989
8272
 
@@ -8165,6 +8448,330 @@ code {
8165
8448
  }
8166
8449
 
8167
8450
 
8451
+
8452
+ /* ============================================
8453
+ FOOTER
8454
+ ============================================ */
8455
+
8456
+ /* Base Footer */
8457
+ .footer {
8458
+ position: relative;
8459
+ width: 100%;
8460
+ background: var(--dm-surface, #fff);
8461
+ border-top: 1px solid var(--dm-border, #dee2e6);
8462
+ font-size: var(--dm-font-size-sm, 0.875rem);
8463
+ }
8464
+
8465
+ /* Position variants */
8466
+ .footer-static {
8467
+ position: static;
8468
+ }
8469
+
8470
+ .footer-fixed {
8471
+ position: fixed;
8472
+ bottom: 0;
8473
+ left: 0;
8474
+ right: 0;
8475
+ z-index: 100;
8476
+ }
8477
+
8478
+ .footer-sticky {
8479
+ position: sticky;
8480
+ bottom: 0;
8481
+ z-index: 100;
8482
+ }
8483
+
8484
+ /* Container */
8485
+ .footer-container {
8486
+ max-width: var(--dm-container-lg, 1200px);
8487
+ margin: 0 auto;
8488
+ padding: var(--dm-space-6, 1.5rem) var(--dm-space-4, 1rem);
8489
+ }
8490
+
8491
+ /* ========== Simple Layout ========== */
8492
+
8493
+ .footer-simple .footer-simple-content {
8494
+ display: flex;
8495
+ flex-wrap: wrap;
8496
+ align-items: center;
8497
+ justify-content: space-between;
8498
+ gap: var(--dm-space-4, 1rem);
8499
+ }
8500
+
8501
+ .footer-brand {
8502
+ display: flex;
8503
+ align-items: center;
8504
+ gap: var(--dm-space-3, 0.75rem);
8505
+ }
8506
+
8507
+ .footer-brand-link {
8508
+ display: flex;
8509
+ align-items: center;
8510
+ gap: var(--dm-space-3, 0.75rem);
8511
+ text-decoration: none;
8512
+ color: inherit;
8513
+ }
8514
+
8515
+ .footer-logo {
8516
+ height: 32px;
8517
+ width: auto;
8518
+ }
8519
+
8520
+ .footer-brand-text {
8521
+ font-weight: 600;
8522
+ color: var(--dm-text, #212529);
8523
+ }
8524
+
8525
+ .footer-nav {
8526
+ display: flex;
8527
+ flex-wrap: wrap;
8528
+ gap: var(--dm-space-4, 1rem);
8529
+ align-items: center;
8530
+ }
8531
+
8532
+ .footer-link {
8533
+ color: var(--dm-text-muted, #6c757d);
8534
+ text-decoration: none;
8535
+ transition: color 0.2s ease;
8536
+ }
8537
+
8538
+ .footer-link:hover {
8539
+ color: var(--dm-primary, #007bff);
8540
+ text-decoration: none;
8541
+ }
8542
+
8543
+ .footer-social {
8544
+ display: flex;
8545
+ gap: var(--dm-space-3, 0.75rem);
8546
+ align-items: center;
8547
+ }
8548
+
8549
+ .footer-social-link {
8550
+ display: inline-flex;
8551
+ align-items: center;
8552
+ justify-content: center;
8553
+ width: 36px;
8554
+ height: 36px;
8555
+ border-radius: 50%;
8556
+ color: var(--dm-text-muted, #6c757d);
8557
+ background: transparent;
8558
+ text-decoration: none;
8559
+ transition: all 0.2s ease;
8560
+ }
8561
+
8562
+ .footer-social-link:hover {
8563
+ color: var(--dm-primary, #007bff);
8564
+ background: var(--dm-gray-100, #f8f9fa);
8565
+ }
8566
+
8567
+ .footer-copyright {
8568
+ width: 100%;
8569
+ padding-top: var(--dm-space-4, 1rem);
8570
+ margin-top: var(--dm-space-4, 1rem);
8571
+ border-top: 1px solid var(--dm-border, #dee2e6);
8572
+ text-align: center;
8573
+ color: var(--dm-text-muted, #6c757d);
8574
+ }
8575
+
8576
+ /* ========== Columns Layout ========== */
8577
+
8578
+ .footer-columns .footer-columns-content {
8579
+ display: grid;
8580
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
8581
+ gap: var(--dm-space-6, 1.5rem);
8582
+ padding-bottom: var(--dm-space-4, 1rem);
8583
+ margin-bottom: var(--dm-space-4, 1rem);
8584
+ border-bottom: 1px solid var(--dm-border, #dee2e6);
8585
+ }
8586
+
8587
+ .footer-column {
8588
+ min-width: 0;
8589
+ }
8590
+
8591
+ .footer-column-brand {
8592
+ grid-column: span 1;
8593
+ }
8594
+
8595
+ .footer-column-brand .footer-logo {
8596
+ margin-bottom: var(--dm-space-3, 0.75rem);
8597
+ }
8598
+
8599
+ .footer-column-brand .footer-brand-text {
8600
+ display: block;
8601
+ margin: 0;
8602
+ color: var(--dm-text-muted, #6c757d);
8603
+ font-weight: 400;
8604
+ line-height: 1.6;
8605
+ }
8606
+
8607
+ .footer-column-title {
8608
+ margin: 0 0 var(--dm-space-3, 0.75rem);
8609
+ font-size: var(--dm-font-size-base, 1rem);
8610
+ font-weight: 600;
8611
+ color: var(--dm-text, #212529);
8612
+ }
8613
+
8614
+ .footer-column-links {
8615
+ list-style: none;
8616
+ margin: 0;
8617
+ padding: 0;
8618
+ }
8619
+
8620
+ .footer-column-links li {
8621
+ margin-bottom: var(--dm-space-2, 0.5rem);
8622
+ }
8623
+
8624
+ .footer-column-link {
8625
+ color: var(--dm-text-muted, #6c757d);
8626
+ text-decoration: none;
8627
+ transition: color 0.2s ease;
8628
+ display: inline-block;
8629
+ }
8630
+
8631
+ .footer-column-link:hover {
8632
+ color: var(--dm-primary, #007bff);
8633
+ text-decoration: none;
8634
+ }
8635
+
8636
+ .footer-columns .footer-bottom {
8637
+ display: flex;
8638
+ flex-wrap: wrap;
8639
+ align-items: center;
8640
+ justify-content: space-between;
8641
+ gap: var(--dm-space-4, 1rem);
8642
+ }
8643
+
8644
+ .footer-columns .footer-copyright {
8645
+ width: auto;
8646
+ padding: 0;
8647
+ margin: 0;
8648
+ border: none;
8649
+ text-align: left;
8650
+ }
8651
+
8652
+ /* ========== Minimal Layout ========== */
8653
+
8654
+ .footer-minimal .footer-minimal-content {
8655
+ display: flex;
8656
+ flex-wrap: wrap;
8657
+ align-items: center;
8658
+ justify-content: center;
8659
+ gap: var(--dm-space-4, 1rem);
8660
+ text-align: center;
8661
+ }
8662
+
8663
+ .footer-minimal .footer-copyright {
8664
+ width: 100%;
8665
+ padding: 0;
8666
+ margin: 0;
8667
+ border: none;
8668
+ }
8669
+
8670
+ .footer-minimal .footer-social {
8671
+ width: 100%;
8672
+ justify-content: center;
8673
+ margin-top: var(--dm-space-3, 0.75rem);
8674
+ }
8675
+
8676
+ /* ========== Theme Variants ========== */
8677
+
8678
+ /* Dark variant */
8679
+ .footer-dark {
8680
+ background: var(--dm-gray-900, #212529);
8681
+ border-color: var(--dm-gray-700, #495057);
8682
+ }
8683
+
8684
+ .footer-dark .footer-brand-text {
8685
+ color: var(--dm-white, #fff);
8686
+ }
8687
+
8688
+ .footer-dark .footer-link {
8689
+ color: var(--dm-gray-400, #adb5bd);
8690
+ }
8691
+
8692
+ .footer-dark .footer-link:hover {
8693
+ color: var(--dm-primary-light, #66b2ff);
8694
+ }
8695
+
8696
+ .footer-dark .footer-column-title {
8697
+ color: var(--dm-white, #fff);
8698
+ }
8699
+
8700
+ .footer-dark .footer-column-link {
8701
+ color: var(--dm-gray-400, #adb5bd);
8702
+ }
8703
+
8704
+ .footer-dark .footer-column-link:hover {
8705
+ color: var(--dm-primary-light, #66b2ff);
8706
+ }
8707
+
8708
+ .footer-dark .footer-copyright {
8709
+ color: var(--dm-gray-500, #6c757d);
8710
+ border-color: var(--dm-gray-700, #495057);
8711
+ }
8712
+
8713
+ .footer-dark .footer-social-link {
8714
+ color: var(--dm-gray-400, #adb5bd);
8715
+ }
8716
+
8717
+ .footer-dark .footer-social-link:hover {
8718
+ color: var(--dm-primary-light, #66b2ff);
8719
+ background: var(--dm-gray-800, #343a40);
8720
+ }
8721
+
8722
+ .footer-dark .footer-columns-content {
8723
+ border-color: var(--dm-gray-700, #495057);
8724
+ }
8725
+
8726
+ /* Light variant (default) */
8727
+ .footer-light {
8728
+ background: var(--dm-white, #fff);
8729
+ border-color: var(--dm-border, #dee2e6);
8730
+ }
8731
+
8732
+ /* Transparent variant */
8733
+ .footer-transparent {
8734
+ background: transparent;
8735
+ border-color: transparent;
8736
+ }
8737
+
8738
+ /* ========== Responsive ========== */
8739
+
8740
+ @media (max-width: 768px) {
8741
+ .footer-container {
8742
+ padding: var(--dm-space-4, 1rem);
8743
+ }
8744
+
8745
+ .footer-simple .footer-simple-content {
8746
+ flex-direction: column;
8747
+ align-items: flex-start;
8748
+ }
8749
+
8750
+ .footer-nav {
8751
+ flex-direction: column;
8752
+ align-items: flex-start;
8753
+ gap: var(--dm-space-2, 0.5rem);
8754
+ }
8755
+
8756
+ .footer-columns .footer-columns-content {
8757
+ grid-template-columns: 1fr;
8758
+ gap: var(--dm-space-4, 1rem);
8759
+ }
8760
+
8761
+ .footer-columns .footer-bottom {
8762
+ flex-direction: column;
8763
+ align-items: flex-start;
8764
+ }
8765
+
8766
+ .footer-columns .footer-copyright {
8767
+ width: 100%;
8768
+ text-align: left;
8769
+ }
8770
+
8771
+ .footer-social {
8772
+ width: 100%;
8773
+ }
8774
+ }
8168
8775
  /* ============================================
8169
8776
  BACKGROUND UTILITIES
8170
8777
  ============================================ */
@@ -10155,11 +10762,11 @@ code {
10155
10762
  ============================================ */
10156
10763
 
10157
10764
  /*!
10158
- * Domma Themes v0.7.5-alpha
10765
+ * Domma Themes v0.7.6-alpha
10159
10766
  * Dynamic Object Manipulation & Modeling API
10160
10767
  * (c) 2026 Darryl Waterhouse & DCBW-IT
10161
- * Built: 2026-01-08T18:40:13.814Z
10162
- * Commit: 61aa8b6
10768
+ * Built: 2026-01-09T13:59:21.866Z
10769
+ * Commit: 5527c59
10163
10770
  */
10164
10771
 
10165
10772
  /**