domma-js 0.7.5-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 Complete CSS Bundle v0.7.5-alpha
2
+ * Domma Complete 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.155Z
5
+ * Built: 2026-01-09T13:59:22.244Z
6
6
  */
7
7
 
8
8
  /* ============================================
@@ -11,11 +11,11 @@
11
11
  ============================================ */
12
12
 
13
13
  /*!
14
- * Domma Core CSS v0.7.5-alpha
14
+ * Domma Core CSS v0.7.6-alpha
15
15
  * Dynamic Object Manipulation & Modeling API
16
16
  * (c) 2026 Darryl Waterhouse & DCBW-IT
17
- * Built: 2026-01-08T18:40:13.837Z
18
- * Commit: 61aa8b6
17
+ * Built: 2026-01-09T13:59:21.897Z
18
+ * Commit: 5527c59
19
19
  */
20
20
 
21
21
  /**
@@ -4016,11 +4016,11 @@ body.dm-cloaked.dm-ready {
4016
4016
  ============================================ */
4017
4017
 
4018
4018
  /*!
4019
- * Domma Grid CSS v0.7.5-alpha
4019
+ * Domma Grid CSS v0.7.6-alpha
4020
4020
  * Dynamic Object Manipulation & Modeling API
4021
4021
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4022
- * Built: 2026-01-08T18:40:13.844Z
4023
- * Commit: 61aa8b6
4022
+ * Built: 2026-01-09T13:59:21.905Z
4023
+ * Commit: 5527c59
4024
4024
  */
4025
4025
 
4026
4026
  /**
@@ -4417,6 +4417,62 @@ body.dm-cloaked.dm-ready {
4417
4417
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
4418
4418
  }
4419
4419
 
4420
+ /* ============================================
4421
+ COLUMN SPAN UTILITIES (for .grid children)
4422
+ ============================================ */
4423
+
4424
+ .col-span-1 {
4425
+ grid-column: span 1 / span 1;
4426
+ }
4427
+
4428
+ .col-span-2 {
4429
+ grid-column: span 2 / span 2;
4430
+ }
4431
+
4432
+ .col-span-3 {
4433
+ grid-column: span 3 / span 3;
4434
+ }
4435
+
4436
+ .col-span-4 {
4437
+ grid-column: span 4 / span 4;
4438
+ }
4439
+
4440
+ .col-span-5 {
4441
+ grid-column: span 5 / span 5;
4442
+ }
4443
+
4444
+ .col-span-6 {
4445
+ grid-column: span 6 / span 6;
4446
+ }
4447
+
4448
+ .col-span-7 {
4449
+ grid-column: span 7 / span 7;
4450
+ }
4451
+
4452
+ .col-span-8 {
4453
+ grid-column: span 8 / span 8;
4454
+ }
4455
+
4456
+ .col-span-9 {
4457
+ grid-column: span 9 / span 9;
4458
+ }
4459
+
4460
+ .col-span-10 {
4461
+ grid-column: span 10 / span 10;
4462
+ }
4463
+
4464
+ .col-span-11 {
4465
+ grid-column: span 11 / span 11;
4466
+ }
4467
+
4468
+ .col-span-12 {
4469
+ grid-column: span 12 / span 12;
4470
+ }
4471
+
4472
+ .col-span-full {
4473
+ grid-column: 1 / -1;
4474
+ }
4475
+
4420
4476
  /* Standalone gap utilities (work with .grid and .row) */
4421
4477
  .gap-0 {
4422
4478
  gap: 0;
@@ -4561,11 +4617,11 @@ body.dm-cloaked.dm-ready {
4561
4617
  ============================================ */
4562
4618
 
4563
4619
  /*!
4564
- * Domma Elements CSS v0.7.5-alpha
4620
+ * Domma Elements CSS v0.7.6-alpha
4565
4621
  * Dynamic Object Manipulation & Modeling API
4566
4622
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4567
- * Built: 2026-01-08T18:40:13.850Z
4568
- * Commit: 61aa8b6
4623
+ * Built: 2026-01-09T13:59:21.912Z
4624
+ * Commit: 5527c59
4569
4625
  */
4570
4626
 
4571
4627
  /**
@@ -7638,47 +7694,120 @@ code {
7638
7694
  SIDEBAR
7639
7695
  ============================================ */
7640
7696
 
7697
+ /* Base Sidebar */
7641
7698
  .sidebar {
7642
- position: fixed;
7643
- bottom: 4px;
7644
- left: 2px;
7645
- width: 220px;
7646
- max-height: 50vh;
7647
- overflow-y: auto;
7699
+ position: relative;
7700
+ width: 250px;
7648
7701
  background: var(--dm-surface, #fff);
7649
- border: 1px solid var(--dm-border, #dee2e6);
7650
- border-radius: var(--dm-radius-lg);
7651
- box-shadow: var(--dm-shadow-lg);
7702
+ border-right: 1px solid var(--dm-border, #dee2e6);
7703
+ overflow-y: auto;
7704
+ overflow-x: hidden;
7705
+ transition: transform 0.3s ease;
7652
7706
  z-index: 100;
7653
7707
  }
7654
7708
 
7709
+ /* Fixed positioning */
7710
+ .sidebar-fixed {
7711
+ position: fixed;
7712
+ top: 0;
7713
+ left: 0;
7714
+ height: 100vh;
7715
+ }
7716
+
7717
+ .sidebar-fixed.sidebar-right {
7718
+ left: auto;
7719
+ right: 0;
7720
+ border-right: none;
7721
+ border-left: 1px solid var(--dm-border, #dee2e6);
7722
+ }
7723
+
7724
+ /* Position variants */
7725
+ .sidebar-left {
7726
+ left: 0;
7727
+ }
7728
+
7729
+ .sidebar-right {
7730
+ right: 0;
7731
+ left: auto;
7732
+ border-right: none;
7733
+ border-left: 1px solid var(--dm-border, #dee2e6);
7734
+ }
7735
+
7736
+ /* Header */
7655
7737
  .sidebar-header {
7656
- padding: var(--dm-space-3) var(--dm-space-3) var(--dm-space-2);
7657
- font-size: var(--dm-font-size-xs);
7658
- font-weight: 600;
7659
- text-transform: uppercase;
7660
- letter-spacing: 0.05em;
7661
- color: var(--dm-gray-500);
7738
+ display: flex;
7739
+ align-items: center;
7740
+ gap: var(--dm-space-3, 0.75rem);
7741
+ padding: var(--dm-space-4, 1rem) var(--dm-space-3, 0.75rem);
7662
7742
  border-bottom: 1px solid var(--dm-border, #dee2e6);
7743
+ background: var(--dm-surface-raised, #f8f9fa);
7744
+ }
7745
+
7746
+ .sidebar-header-icon {
7747
+ flex-shrink: 0;
7748
+ display: inline-flex;
7749
+ align-items: center;
7750
+ justify-content: center;
7751
+ }
7752
+
7753
+ .sidebar-header-title {
7754
+ flex: 1;
7755
+ margin: 0;
7756
+ font-size: var(--dm-font-size-lg, 1.125rem);
7757
+ font-weight: 600;
7758
+ color: var(--dm-text, #212529);
7759
+ }
7760
+
7761
+ .sidebar-toggle-btn {
7762
+ display: none; /* Shown on mobile */
7763
+ flex-shrink: 0;
7764
+ width: 32px;
7765
+ height: 32px;
7766
+ padding: 0;
7767
+ border: none;
7768
+ background: transparent;
7769
+ color: var(--dm-text-muted, #6c757d);
7770
+ border-radius: var(--dm-radius-md, 0.375rem);
7771
+ cursor: pointer;
7772
+ transition: all 0.2s ease;
7773
+ }
7774
+
7775
+ .sidebar-toggle-btn:hover {
7776
+ background: var(--dm-gray-200, #e9ecef);
7777
+ color: var(--dm-text, #212529);
7663
7778
  }
7664
7779
 
7780
+ /* Navigation */
7665
7781
  .sidebar-nav {
7782
+ padding: var(--dm-space-2, 0.5rem) 0;
7783
+ }
7784
+
7785
+ .sidebar-menu {
7666
7786
  list-style: none;
7667
7787
  margin: 0;
7668
- padding: var(--dm-space-2);
7788
+ padding: 0;
7789
+ }
7790
+
7791
+ .sidebar-item {
7792
+ position: relative;
7669
7793
  }
7670
7794
 
7795
+ /* Navigation Links */
7671
7796
  .sidebar-link {
7672
- display: block;
7673
- padding: var(--dm-space-2) var(--dm-space-3);
7797
+ display: flex;
7798
+ align-items: center;
7799
+ gap: var(--dm-space-3, 0.75rem);
7800
+ padding: var(--dm-space-2, 0.5rem) var(--dm-space-4, 1rem);
7674
7801
  color: var(--dm-text-muted, #6c757d);
7675
7802
  text-decoration: none;
7676
- font-size: var(--dm-font-size-sm);
7677
- border-radius: var(--dm-radius-md);
7678
- transition: all 0.15s ease;
7679
- white-space: nowrap;
7680
- overflow: hidden;
7681
- text-overflow: ellipsis;
7803
+ font-size: var(--dm-font-size-sm, 0.875rem);
7804
+ transition: all 0.2s ease;
7805
+ cursor: pointer;
7806
+ border: none;
7807
+ background: transparent;
7808
+ width: 100%;
7809
+ text-align: left;
7810
+ border-left: 3px solid transparent;
7682
7811
  }
7683
7812
 
7684
7813
  .sidebar-link:hover {
@@ -7688,83 +7817,237 @@ code {
7688
7817
  }
7689
7818
 
7690
7819
  .sidebar-link.active {
7691
- color: var(--dm-primary);
7692
- background: var(--dm-primary-bg, rgba(100, 149, 237, 0.1));
7820
+ color: var(--dm-primary, #007bff);
7821
+ background: var(--dm-primary-bg, rgba(0, 123, 255, 0.1));
7693
7822
  font-weight: 500;
7823
+ border-left-color: var(--dm-primary, #007bff);
7694
7824
  }
7695
7825
 
7696
- .showcase-content {
7697
- width: 100%;
7826
+ /* Link elements */
7827
+ .sidebar-icon {
7828
+ flex-shrink: 0;
7829
+ display: inline-flex;
7830
+ align-items: center;
7831
+ justify-content: center;
7698
7832
  }
7699
7833
 
7700
- /* Add left margin on desktop to account for fixed sidebar */
7701
- @media (min-width: 1025px) {
7702
- .showcase-content {
7703
- margin-left: 240px;
7704
- width: calc(100% - 240px);
7705
- }
7834
+ .sidebar-text {
7835
+ flex: 1;
7836
+ white-space: nowrap;
7837
+ overflow: hidden;
7838
+ text-overflow: ellipsis;
7706
7839
  }
7707
7840
 
7708
- /* Sidebar toggle button (mobile) */
7709
-
7710
- .sidebar-toggle {
7711
- display: none;
7712
- position: fixed;
7713
- bottom: var(--dm-space-4);
7714
- left: var(--dm-space-4);
7715
- width: 48px;
7716
- height: 48px;
7717
- border-radius: 50%;
7718
- background: var(--dm-primary);
7719
- color: white;
7720
- border: none;
7721
- cursor: pointer;
7722
- z-index: 1001;
7723
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
7724
- transition: transform 0.2s ease, box-shadow 0.2s ease;
7841
+ .sidebar-badge {
7842
+ flex-shrink: 0;
7843
+ display: inline-flex;
7725
7844
  align-items: center;
7726
7845
  justify-content: center;
7846
+ min-width: 20px;
7847
+ height: 20px;
7848
+ padding: 0 var(--dm-space-2, 0.5rem);
7849
+ font-size: var(--dm-font-size-xs, 0.75rem);
7850
+ font-weight: 600;
7851
+ line-height: 1;
7852
+ color: var(--dm-white, #fff);
7853
+ background: var(--dm-primary, #007bff);
7854
+ border-radius: 10px;
7727
7855
  }
7728
7856
 
7729
- .sidebar-toggle:hover {
7730
- transform: scale(1.05);
7731
- box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25);
7857
+ /* Submenu toggle (has children) */
7858
+ .sidebar-link-toggle {
7859
+ position: relative;
7732
7860
  }
7733
7861
 
7734
- .sidebar-toggle svg {
7735
- width: 24px;
7736
- height: 24px;
7862
+ .sidebar-chevron {
7863
+ flex-shrink: 0;
7864
+ margin-left: auto;
7865
+ transition: transform 0.2s ease;
7737
7866
  }
7738
7867
 
7739
- /* Sidebar overlay (mobile) */
7868
+ .sidebar-item.open > .sidebar-link-toggle .sidebar-chevron {
7869
+ transform: rotate(90deg);
7870
+ }
7740
7871
 
7741
- .sidebar-overlay {
7872
+ /* Submenu container */
7873
+ .sidebar-submenu {
7742
7874
  display: none;
7875
+ overflow: hidden;
7876
+ }
7877
+
7878
+ .sidebar-item.open > .sidebar-submenu {
7879
+ display: block;
7880
+ }
7881
+
7882
+ .sidebar-submenu .sidebar-menu {
7883
+ padding-left: var(--dm-space-4, 1rem);
7884
+ }
7885
+
7886
+ .sidebar-submenu .sidebar-link {
7887
+ padding-left: calc(var(--dm-space-4, 1rem) + var(--dm-space-2, 0.5rem));
7888
+ font-size: var(--dm-font-size-xs, 0.75rem);
7889
+ }
7890
+
7891
+ /* Nested depth indentation */
7892
+ .sidebar-menu[data-depth="1"] .sidebar-link {
7893
+ padding-left: calc(var(--dm-space-4, 1rem) * 2);
7894
+ }
7895
+
7896
+ .sidebar-menu[data-depth="2"] .sidebar-link {
7897
+ padding-left: calc(var(--dm-space-4, 1rem) * 3);
7898
+ }
7899
+
7900
+ .sidebar-menu[data-depth="3"] .sidebar-link {
7901
+ padding-left: calc(var(--dm-space-4, 1rem) * 4);
7902
+ }
7903
+
7904
+ .sidebar-menu[data-depth="4"] .sidebar-link {
7905
+ padding-left: calc(var(--dm-space-4, 1rem) * 5);
7906
+ }
7907
+
7908
+ /* Divider */
7909
+ .sidebar-divider {
7910
+ height: 1px;
7911
+ margin: var(--dm-space-2, 0.5rem) var(--dm-space-4, 1rem);
7912
+ background: var(--dm-border, #dee2e6);
7913
+ list-style: none;
7914
+ }
7915
+
7916
+ /* Section Heading */
7917
+ .sidebar-heading {
7918
+ padding: var(--dm-space-3, 0.75rem) var(--dm-space-4, 1rem) var(--dm-space-2, 0.5rem);
7919
+ font-size: var(--dm-font-size-xs, 0.75rem);
7920
+ font-weight: 600;
7921
+ text-transform: uppercase;
7922
+ letter-spacing: 0.05em;
7923
+ color: var(--dm-gray-500, #6c757d);
7924
+ list-style: none;
7925
+ }
7926
+
7927
+ /* Footer */
7928
+ .sidebar-footer {
7929
+ padding: var(--dm-space-3, 0.75rem) var(--dm-space-4, 1rem);
7930
+ border-top: 1px solid var(--dm-border, #dee2e6);
7931
+ background: var(--dm-surface-raised, #f8f9fa);
7932
+ }
7933
+
7934
+ .sidebar-footer-text {
7935
+ margin: 0;
7936
+ font-size: var(--dm-font-size-xs, 0.75rem);
7937
+ color: var(--dm-text-muted, #6c757d);
7938
+ }
7939
+
7940
+ /* Overlay (mobile) */
7941
+ .sidebar-overlay {
7743
7942
  position: fixed;
7744
7943
  top: 0;
7745
7944
  left: 0;
7746
7945
  right: 0;
7747
7946
  bottom: 0;
7748
7947
  background: rgba(0, 0, 0, 0.5);
7749
- z-index: 999;
7948
+ z-index: 99;
7750
7949
  opacity: 0;
7751
- transition: opacity 0.3s ease;
7950
+ visibility: hidden;
7951
+ transition: opacity 0.3s ease, visibility 0.3s ease;
7752
7952
  }
7753
7953
 
7754
7954
  .sidebar-overlay.active {
7755
7955
  opacity: 1;
7956
+ visibility: visible;
7957
+ }
7958
+
7959
+ /* Theme Variants */
7960
+
7961
+ /* Dark variant */
7962
+ .sidebar-dark {
7963
+ background: var(--dm-gray-900, #212529);
7964
+ border-color: var(--dm-gray-700, #495057);
7965
+ }
7966
+
7967
+ .sidebar-dark .sidebar-header {
7968
+ background: var(--dm-gray-800, #343a40);
7969
+ border-color: var(--dm-gray-700, #495057);
7970
+ }
7971
+
7972
+ .sidebar-dark .sidebar-header-title {
7973
+ color: var(--dm-white, #fff);
7974
+ }
7975
+
7976
+ .sidebar-dark .sidebar-link {
7977
+ color: var(--dm-gray-400, #adb5bd);
7978
+ border-left-color: transparent;
7979
+ }
7980
+
7981
+ .sidebar-dark .sidebar-link:hover {
7982
+ color: var(--dm-white, #fff);
7983
+ background: var(--dm-gray-800, #343a40);
7984
+ }
7985
+
7986
+ .sidebar-dark .sidebar-link.active {
7987
+ color: var(--dm-primary-light, #66b2ff);
7988
+ background: rgba(102, 178, 255, 0.15);
7989
+ border-left-color: var(--dm-primary-light, #66b2ff);
7990
+ }
7991
+
7992
+ .sidebar-dark .sidebar-heading {
7993
+ color: var(--dm-gray-500, #6c757d);
7994
+ }
7995
+
7996
+ .sidebar-dark .sidebar-divider {
7997
+ background: var(--dm-gray-700, #495057);
7998
+ }
7999
+
8000
+ .sidebar-dark .sidebar-footer {
8001
+ background: var(--dm-gray-800, #343a40);
8002
+ border-color: var(--dm-gray-700, #495057);
8003
+ }
8004
+
8005
+ .sidebar-dark .sidebar-footer-text {
8006
+ color: var(--dm-gray-500, #6c757d);
8007
+ }
8008
+
8009
+ /* Light variant (default, explicit) */
8010
+ .sidebar-light {
8011
+ background: var(--dm-white, #fff);
8012
+ border-color: var(--dm-border, #dee2e6);
7756
8013
  }
7757
8014
 
7758
8015
  /* Mobile/Tablet: Slide-out drawer */
7759
8016
  @media (max-width: 768px) {
7760
- .sidebar {
7761
- display: none;
7762
- position: fixed;
7763
- top: 0;
7764
- left: 0;
7765
- bottom: 0;
7766
- width: 260px;
7767
- max-height: 100vh;
8017
+ .sidebar-fixed {
8018
+ transform: translateX(-100%);
8019
+ box-shadow: none;
8020
+ }
8021
+
8022
+ .sidebar-fixed.sidebar-right {
8023
+ transform: translateX(100%);
8024
+ }
8025
+
8026
+ .sidebar-fixed.open {
8027
+ transform: translateX(0);
8028
+ box-shadow: var(--dm-shadow-xl, 0 10px 40px rgba(0,0,0,0.2));
8029
+ }
8030
+
8031
+ .sidebar-toggle-btn {
8032
+ display: flex;
8033
+ align-items: center;
8034
+ justify-content: center;
8035
+ }
8036
+
8037
+ .sidebar-overlay {
8038
+ display: block;
8039
+ }
8040
+ }
8041
+
8042
+ /* Showcase-specific overrides (for backward compatibility) */
8043
+ .showcase-content {
8044
+ width: 100%;
8045
+ }
8046
+
8047
+ @media (min-width: 1025px) {
8048
+ .showcase-content {
8049
+ margin-left: 240px;
8050
+ width: calc(100% - 240px);
7768
8051
  }
7769
8052
  }
7770
8053
 
@@ -7946,6 +8229,330 @@ code {
7946
8229
  }
7947
8230
 
7948
8231
 
8232
+
8233
+ /* ============================================
8234
+ FOOTER
8235
+ ============================================ */
8236
+
8237
+ /* Base Footer */
8238
+ .footer {
8239
+ position: relative;
8240
+ width: 100%;
8241
+ background: var(--dm-surface, #fff);
8242
+ border-top: 1px solid var(--dm-border, #dee2e6);
8243
+ font-size: var(--dm-font-size-sm, 0.875rem);
8244
+ }
8245
+
8246
+ /* Position variants */
8247
+ .footer-static {
8248
+ position: static;
8249
+ }
8250
+
8251
+ .footer-fixed {
8252
+ position: fixed;
8253
+ bottom: 0;
8254
+ left: 0;
8255
+ right: 0;
8256
+ z-index: 100;
8257
+ }
8258
+
8259
+ .footer-sticky {
8260
+ position: sticky;
8261
+ bottom: 0;
8262
+ z-index: 100;
8263
+ }
8264
+
8265
+ /* Container */
8266
+ .footer-container {
8267
+ max-width: var(--dm-container-lg, 1200px);
8268
+ margin: 0 auto;
8269
+ padding: var(--dm-space-6, 1.5rem) var(--dm-space-4, 1rem);
8270
+ }
8271
+
8272
+ /* ========== Simple Layout ========== */
8273
+
8274
+ .footer-simple .footer-simple-content {
8275
+ display: flex;
8276
+ flex-wrap: wrap;
8277
+ align-items: center;
8278
+ justify-content: space-between;
8279
+ gap: var(--dm-space-4, 1rem);
8280
+ }
8281
+
8282
+ .footer-brand {
8283
+ display: flex;
8284
+ align-items: center;
8285
+ gap: var(--dm-space-3, 0.75rem);
8286
+ }
8287
+
8288
+ .footer-brand-link {
8289
+ display: flex;
8290
+ align-items: center;
8291
+ gap: var(--dm-space-3, 0.75rem);
8292
+ text-decoration: none;
8293
+ color: inherit;
8294
+ }
8295
+
8296
+ .footer-logo {
8297
+ height: 32px;
8298
+ width: auto;
8299
+ }
8300
+
8301
+ .footer-brand-text {
8302
+ font-weight: 600;
8303
+ color: var(--dm-text, #212529);
8304
+ }
8305
+
8306
+ .footer-nav {
8307
+ display: flex;
8308
+ flex-wrap: wrap;
8309
+ gap: var(--dm-space-4, 1rem);
8310
+ align-items: center;
8311
+ }
8312
+
8313
+ .footer-link {
8314
+ color: var(--dm-text-muted, #6c757d);
8315
+ text-decoration: none;
8316
+ transition: color 0.2s ease;
8317
+ }
8318
+
8319
+ .footer-link:hover {
8320
+ color: var(--dm-primary, #007bff);
8321
+ text-decoration: none;
8322
+ }
8323
+
8324
+ .footer-social {
8325
+ display: flex;
8326
+ gap: var(--dm-space-3, 0.75rem);
8327
+ align-items: center;
8328
+ }
8329
+
8330
+ .footer-social-link {
8331
+ display: inline-flex;
8332
+ align-items: center;
8333
+ justify-content: center;
8334
+ width: 36px;
8335
+ height: 36px;
8336
+ border-radius: 50%;
8337
+ color: var(--dm-text-muted, #6c757d);
8338
+ background: transparent;
8339
+ text-decoration: none;
8340
+ transition: all 0.2s ease;
8341
+ }
8342
+
8343
+ .footer-social-link:hover {
8344
+ color: var(--dm-primary, #007bff);
8345
+ background: var(--dm-gray-100, #f8f9fa);
8346
+ }
8347
+
8348
+ .footer-copyright {
8349
+ width: 100%;
8350
+ padding-top: var(--dm-space-4, 1rem);
8351
+ margin-top: var(--dm-space-4, 1rem);
8352
+ border-top: 1px solid var(--dm-border, #dee2e6);
8353
+ text-align: center;
8354
+ color: var(--dm-text-muted, #6c757d);
8355
+ }
8356
+
8357
+ /* ========== Columns Layout ========== */
8358
+
8359
+ .footer-columns .footer-columns-content {
8360
+ display: grid;
8361
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
8362
+ gap: var(--dm-space-6, 1.5rem);
8363
+ padding-bottom: var(--dm-space-4, 1rem);
8364
+ margin-bottom: var(--dm-space-4, 1rem);
8365
+ border-bottom: 1px solid var(--dm-border, #dee2e6);
8366
+ }
8367
+
8368
+ .footer-column {
8369
+ min-width: 0;
8370
+ }
8371
+
8372
+ .footer-column-brand {
8373
+ grid-column: span 1;
8374
+ }
8375
+
8376
+ .footer-column-brand .footer-logo {
8377
+ margin-bottom: var(--dm-space-3, 0.75rem);
8378
+ }
8379
+
8380
+ .footer-column-brand .footer-brand-text {
8381
+ display: block;
8382
+ margin: 0;
8383
+ color: var(--dm-text-muted, #6c757d);
8384
+ font-weight: 400;
8385
+ line-height: 1.6;
8386
+ }
8387
+
8388
+ .footer-column-title {
8389
+ margin: 0 0 var(--dm-space-3, 0.75rem);
8390
+ font-size: var(--dm-font-size-base, 1rem);
8391
+ font-weight: 600;
8392
+ color: var(--dm-text, #212529);
8393
+ }
8394
+
8395
+ .footer-column-links {
8396
+ list-style: none;
8397
+ margin: 0;
8398
+ padding: 0;
8399
+ }
8400
+
8401
+ .footer-column-links li {
8402
+ margin-bottom: var(--dm-space-2, 0.5rem);
8403
+ }
8404
+
8405
+ .footer-column-link {
8406
+ color: var(--dm-text-muted, #6c757d);
8407
+ text-decoration: none;
8408
+ transition: color 0.2s ease;
8409
+ display: inline-block;
8410
+ }
8411
+
8412
+ .footer-column-link:hover {
8413
+ color: var(--dm-primary, #007bff);
8414
+ text-decoration: none;
8415
+ }
8416
+
8417
+ .footer-columns .footer-bottom {
8418
+ display: flex;
8419
+ flex-wrap: wrap;
8420
+ align-items: center;
8421
+ justify-content: space-between;
8422
+ gap: var(--dm-space-4, 1rem);
8423
+ }
8424
+
8425
+ .footer-columns .footer-copyright {
8426
+ width: auto;
8427
+ padding: 0;
8428
+ margin: 0;
8429
+ border: none;
8430
+ text-align: left;
8431
+ }
8432
+
8433
+ /* ========== Minimal Layout ========== */
8434
+
8435
+ .footer-minimal .footer-minimal-content {
8436
+ display: flex;
8437
+ flex-wrap: wrap;
8438
+ align-items: center;
8439
+ justify-content: center;
8440
+ gap: var(--dm-space-4, 1rem);
8441
+ text-align: center;
8442
+ }
8443
+
8444
+ .footer-minimal .footer-copyright {
8445
+ width: 100%;
8446
+ padding: 0;
8447
+ margin: 0;
8448
+ border: none;
8449
+ }
8450
+
8451
+ .footer-minimal .footer-social {
8452
+ width: 100%;
8453
+ justify-content: center;
8454
+ margin-top: var(--dm-space-3, 0.75rem);
8455
+ }
8456
+
8457
+ /* ========== Theme Variants ========== */
8458
+
8459
+ /* Dark variant */
8460
+ .footer-dark {
8461
+ background: var(--dm-gray-900, #212529);
8462
+ border-color: var(--dm-gray-700, #495057);
8463
+ }
8464
+
8465
+ .footer-dark .footer-brand-text {
8466
+ color: var(--dm-white, #fff);
8467
+ }
8468
+
8469
+ .footer-dark .footer-link {
8470
+ color: var(--dm-gray-400, #adb5bd);
8471
+ }
8472
+
8473
+ .footer-dark .footer-link:hover {
8474
+ color: var(--dm-primary-light, #66b2ff);
8475
+ }
8476
+
8477
+ .footer-dark .footer-column-title {
8478
+ color: var(--dm-white, #fff);
8479
+ }
8480
+
8481
+ .footer-dark .footer-column-link {
8482
+ color: var(--dm-gray-400, #adb5bd);
8483
+ }
8484
+
8485
+ .footer-dark .footer-column-link:hover {
8486
+ color: var(--dm-primary-light, #66b2ff);
8487
+ }
8488
+
8489
+ .footer-dark .footer-copyright {
8490
+ color: var(--dm-gray-500, #6c757d);
8491
+ border-color: var(--dm-gray-700, #495057);
8492
+ }
8493
+
8494
+ .footer-dark .footer-social-link {
8495
+ color: var(--dm-gray-400, #adb5bd);
8496
+ }
8497
+
8498
+ .footer-dark .footer-social-link:hover {
8499
+ color: var(--dm-primary-light, #66b2ff);
8500
+ background: var(--dm-gray-800, #343a40);
8501
+ }
8502
+
8503
+ .footer-dark .footer-columns-content {
8504
+ border-color: var(--dm-gray-700, #495057);
8505
+ }
8506
+
8507
+ /* Light variant (default) */
8508
+ .footer-light {
8509
+ background: var(--dm-white, #fff);
8510
+ border-color: var(--dm-border, #dee2e6);
8511
+ }
8512
+
8513
+ /* Transparent variant */
8514
+ .footer-transparent {
8515
+ background: transparent;
8516
+ border-color: transparent;
8517
+ }
8518
+
8519
+ /* ========== Responsive ========== */
8520
+
8521
+ @media (max-width: 768px) {
8522
+ .footer-container {
8523
+ padding: var(--dm-space-4, 1rem);
8524
+ }
8525
+
8526
+ .footer-simple .footer-simple-content {
8527
+ flex-direction: column;
8528
+ align-items: flex-start;
8529
+ }
8530
+
8531
+ .footer-nav {
8532
+ flex-direction: column;
8533
+ align-items: flex-start;
8534
+ gap: var(--dm-space-2, 0.5rem);
8535
+ }
8536
+
8537
+ .footer-columns .footer-columns-content {
8538
+ grid-template-columns: 1fr;
8539
+ gap: var(--dm-space-4, 1rem);
8540
+ }
8541
+
8542
+ .footer-columns .footer-bottom {
8543
+ flex-direction: column;
8544
+ align-items: flex-start;
8545
+ }
8546
+
8547
+ .footer-columns .footer-copyright {
8548
+ width: 100%;
8549
+ text-align: left;
8550
+ }
8551
+
8552
+ .footer-social {
8553
+ width: 100%;
8554
+ }
8555
+ }
7949
8556
  /* ============================================
7950
8557
  BACKGROUND UTILITIES
7951
8558
  ============================================ */
@@ -9936,11 +10543,11 @@ code {
9936
10543
  ============================================ */
9937
10544
 
9938
10545
  /*!
9939
- * Domma Themes v0.7.5-alpha
10546
+ * Domma Themes v0.7.6-alpha
9940
10547
  * Dynamic Object Manipulation & Modeling API
9941
10548
  * (c) 2026 Darryl Waterhouse & DCBW-IT
9942
- * Built: 2026-01-08T18:40:13.814Z
9943
- * Commit: 61aa8b6
10549
+ * Built: 2026-01-09T13:59:21.866Z
10550
+ * Commit: 5527c59
9944
10551
  */
9945
10552
 
9946
10553
  /**