violit 0.0.6__py3-none-any.whl → 0.0.7__py3-none-any.whl
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.
- violit/theme.py +165 -0
- violit/widgets/layout_widgets.py +10 -2
- {violit-0.0.6.dist-info → violit-0.0.7.dist-info}/METADATA +1 -1
- {violit-0.0.6.dist-info → violit-0.0.7.dist-info}/RECORD +7 -7
- {violit-0.0.6.dist-info → violit-0.0.7.dist-info}/WHEEL +0 -0
- {violit-0.0.6.dist-info → violit-0.0.7.dist-info}/licenses/LICENSE +0 -0
- {violit-0.0.6.dist-info → violit-0.0.7.dist-info}/top_level.txt +0 -0
violit/theme.py
CHANGED
|
@@ -713,6 +713,171 @@ class Theme:
|
|
|
713
713
|
-webkit-text-fill-color: transparent !important;
|
|
714
714
|
}
|
|
715
715
|
"""
|
|
716
|
+
},
|
|
717
|
+
'violit_light': {
|
|
718
|
+
'mode': 'light',
|
|
719
|
+
'primary': '#7C3AED',
|
|
720
|
+
'secondary': '#8B5CF6',
|
|
721
|
+
'success': '#10B981',
|
|
722
|
+
'warning': '#F59E0B',
|
|
723
|
+
'danger': '#EF4444',
|
|
724
|
+
'bg': '#FFFFFF',
|
|
725
|
+
'bg_card': '#FFFFFF',
|
|
726
|
+
'border': '#E4E4E7',
|
|
727
|
+
'text': '#18181B',
|
|
728
|
+
'text_muted': '#71717A',
|
|
729
|
+
'radius': '6px',
|
|
730
|
+
'input_border_radius_small': '4px',
|
|
731
|
+
'input_border_radius_medium': '6px',
|
|
732
|
+
'input_border_radius_large': '8px',
|
|
733
|
+
'extra_css': """
|
|
734
|
+
/*
|
|
735
|
+
THEME: Modern Luxury (Restrained)
|
|
736
|
+
Concept: 'Silk & Glass' - Smooth, matte finishes with subtle light play.
|
|
737
|
+
No loud gradients, no flashing flashing animations.
|
|
738
|
+
*/
|
|
739
|
+
|
|
740
|
+
body {
|
|
741
|
+
background-color: #FFFFFF;
|
|
742
|
+
/* Very subtle ambient light, barely visible */
|
|
743
|
+
background-image: radial-gradient(circle at 50% 0%, rgba(124, 58, 237, 0.03), transparent 40%);
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
/* Cards: Clean, bordered, soft shadow */
|
|
747
|
+
.card {
|
|
748
|
+
background: #FFFFFF !important;
|
|
749
|
+
border: 1px solid #E4E4E7 !important;
|
|
750
|
+
box-shadow: 0 1px 3px rgba(0,0,0,0.02) !important;
|
|
751
|
+
border-radius: 8px !important;
|
|
752
|
+
transition: box-shadow 0.2s ease, transform 0.2s ease;
|
|
753
|
+
}
|
|
754
|
+
.card:hover {
|
|
755
|
+
box-shadow: 0 8px 24px rgba(0,0,0,0.04) !important;
|
|
756
|
+
border-color: #D4D4D8 !important;
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
/* --- SOPHISTICATED BUTTONS --- */
|
|
760
|
+
/* Matte finish, rich color, soft colored shadow */
|
|
761
|
+
|
|
762
|
+
sl-button::part(base) {
|
|
763
|
+
background: #7C3AED !important; /* Solid Violet 600 */
|
|
764
|
+
border: 1px solid transparent !important; /* Clean edges */
|
|
765
|
+
|
|
766
|
+
color: white !important;
|
|
767
|
+
font-weight: 500 !important; /* Medium weight is more premium than Bold */
|
|
768
|
+
letter-spacing: -0.01em;
|
|
769
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
770
|
+
|
|
771
|
+
border-radius: 6px !important;
|
|
772
|
+
|
|
773
|
+
/* The "Luxury" Touch: A soft, colored shadow glow */
|
|
774
|
+
box-shadow: 0 4px 12px rgba(124, 58, 237, 0.25) !important;
|
|
775
|
+
|
|
776
|
+
transition: all 0.2s cubic-bezier(0.25, 1, 0.5, 1);
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
/* Hover: Subtle Deepening & Lift */
|
|
780
|
+
sl-button::part(base):hover {
|
|
781
|
+
background: #6D28D9 !important; /* Violet 700 */
|
|
782
|
+
transform: translateY(-1px);
|
|
783
|
+
box-shadow: 0 6px 16px rgba(124, 58, 237, 0.35) !important;
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
/* Active: Precise Press */
|
|
787
|
+
sl-button::part(base):active {
|
|
788
|
+
transform: translateY(0px) scale(0.98) !important;
|
|
789
|
+
background: #5B21B6 !important; /* Violet 800 */
|
|
790
|
+
box-shadow: 0 2px 4px rgba(124, 58, 237, 0.15) !important;
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
/* Remove all pseudo-element animations for cleaner look */
|
|
794
|
+
sl-button::part(base)::before,
|
|
795
|
+
sl-button::part(base)::after {
|
|
796
|
+
display: none !important;
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
/* Typography: High contrast, sharp */
|
|
800
|
+
h1, h2, h3 {
|
|
801
|
+
color: #111827;
|
|
802
|
+
font-weight: 700;
|
|
803
|
+
letter-spacing: -0.02em;
|
|
804
|
+
}
|
|
805
|
+
"""
|
|
806
|
+
},
|
|
807
|
+
'violit_dark': {
|
|
808
|
+
'mode': 'dark',
|
|
809
|
+
'primary': '#8B5CF6',
|
|
810
|
+
'secondary': '#6D28D9',
|
|
811
|
+
'success': '#34D399',
|
|
812
|
+
'warning': '#FBBF24',
|
|
813
|
+
'danger': '#F87171',
|
|
814
|
+
'bg': '#1e1b4b', # Ultra Deep Indigo
|
|
815
|
+
'bg_card': '#312e81', # Deep Indigo
|
|
816
|
+
'border': '#4c1d95', # Violet 900
|
|
817
|
+
'text': '#ede9fe', # Violet 50
|
|
818
|
+
'text_muted': '#a78bfa',
|
|
819
|
+
'radius': '3px',
|
|
820
|
+
'input_border_radius_small': '2px',
|
|
821
|
+
'input_border_radius_medium': '3px',
|
|
822
|
+
'input_border_radius_large': '4px',
|
|
823
|
+
'extra_css': """
|
|
824
|
+
body {
|
|
825
|
+
background: radial-gradient(circle at 50% -20%, #4c1d95 0%, #1e1b4b 50%, #0f0a20 100%);
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
.card {
|
|
829
|
+
background: rgba(49, 46, 129, 0.4) !important;
|
|
830
|
+
backdrop-filter: blur(12px) !important;
|
|
831
|
+
border: 1px solid rgba(139, 92, 246, 0.3) !important;
|
|
832
|
+
box-shadow:
|
|
833
|
+
0 0 20px rgba(139, 92, 246, 0.05),
|
|
834
|
+
inset 0 0 0 1px rgba(255, 255, 255, 0.05) !important;
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
/* Neon Facet Buttons */
|
|
838
|
+
sl-button::part(base) {
|
|
839
|
+
background: transparent !important;
|
|
840
|
+
border: 1px solid #8B5CF6 !important;
|
|
841
|
+
color: #8B5CF6 !important;
|
|
842
|
+
border-radius: 2px !important;
|
|
843
|
+
box-shadow: 0 0 5px rgba(139, 92, 246, 0.2) !important;
|
|
844
|
+
transition: all 0.2s ease !important;
|
|
845
|
+
text-transform: uppercase;
|
|
846
|
+
font-weight: 700;
|
|
847
|
+
letter-spacing: 1px;
|
|
848
|
+
}
|
|
849
|
+
|
|
850
|
+
/* Hover: Fill with Light */
|
|
851
|
+
sl-button::part(base):hover {
|
|
852
|
+
background: #8B5CF6 !important;
|
|
853
|
+
color: white !important;
|
|
854
|
+
box-shadow: 0 0 20px #8B5CF6, 0 0 40px rgba(139, 92, 246, 0.4) !important;
|
|
855
|
+
text-shadow: 0 1px 2px rgba(0,0,0,0.2);
|
|
856
|
+
transform: scale(1.02) !important;
|
|
857
|
+
border-color: transparent !important;
|
|
858
|
+
}
|
|
859
|
+
|
|
860
|
+
/* Active */
|
|
861
|
+
sl-button::part(base):active {
|
|
862
|
+
transform: scale(0.95) !important;
|
|
863
|
+
box-shadow: 0 0 10px #8B5CF6 !important;
|
|
864
|
+
}
|
|
865
|
+
|
|
866
|
+
h1, h2, h3 {
|
|
867
|
+
color: #ede9fe;
|
|
868
|
+
text-shadow: 0 0 10px rgba(139, 92, 246, 0.5);
|
|
869
|
+
}
|
|
870
|
+
|
|
871
|
+
/* Inputs */
|
|
872
|
+
sl-input::part(base) {
|
|
873
|
+
background: rgba(0,0,0,0.3) !important;
|
|
874
|
+
border: 1px solid #4c1d95 !important;
|
|
875
|
+
}
|
|
876
|
+
sl-input::part(base):focus-within {
|
|
877
|
+
border-color: #8B5CF6 !important;
|
|
878
|
+
box-shadow: 0 0 10px rgba(139, 92, 246, 0.2) !important;
|
|
879
|
+
}
|
|
880
|
+
"""
|
|
716
881
|
}
|
|
717
882
|
}
|
|
718
883
|
|
violit/widgets/layout_widgets.py
CHANGED
|
@@ -41,10 +41,18 @@ class LayoutWidgetsMixin:
|
|
|
41
41
|
# Check session
|
|
42
42
|
for cid, b in store['fragment_components'].get(col_id, []):
|
|
43
43
|
col_content.append(b().render())
|
|
44
|
-
|
|
44
|
+
|
|
45
|
+
# Apply Flexbox Centering to each column item
|
|
46
|
+
# justify-content: center (horizontal), align-items: center (vertical)
|
|
47
|
+
# height: 100% ensures vertical centering works if heights differ
|
|
48
|
+
columns_html.append(
|
|
49
|
+
f'<div class="column-item" style="display: flex; flex-direction: column; justify-content: center; height: 100%;">'
|
|
50
|
+
f'{"".join(col_content)}</div>'
|
|
51
|
+
)
|
|
45
52
|
|
|
46
53
|
grid_tmpl = " ".join(weights)
|
|
47
|
-
|
|
54
|
+
# align-items: stretch ensures all columns have equal height
|
|
55
|
+
container_html = f'<div id="{columns_id}" class="columns" style="display: grid; grid-template-columns: {grid_tmpl}; gap: {gap}; align-items: stretch;">{"".join(columns_html)}</div>'
|
|
48
56
|
return Component("div", id=f"{columns_id}_wrapper", content=container_html)
|
|
49
57
|
|
|
50
58
|
self._register_component(columns_id, builder)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: violit
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.7
|
|
4
4
|
Summary: Violit: Faster than Light, Beautiful as Violet. The High-Performance Python Web Framework (Streamlit Alternative with Zero Rerun).
|
|
5
5
|
Author-email: Violit Team <violit.company@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -6,7 +6,7 @@ violit/component.py,sha256=HBh72unqjNUri05UAK_TnQVsPJULot2hgAQK8HKqQLM,1483
|
|
|
6
6
|
violit/context.py,sha256=oai3FiBFwZbAK-ONHCPzItITHjXeZ3zXNya_BmPlX8I,517
|
|
7
7
|
violit/engine.py,sha256=oH3C04vhVgZFgy0HSaI9vPOkBEZBQBz40zs1Y1my9vw,1829
|
|
8
8
|
violit/state.py,sha256=oxIVCa-nencMjQXAs9ZMwfeTuz4w0LAeKDvBv_lvzhQ,12721
|
|
9
|
-
violit/theme.py,sha256=
|
|
9
|
+
violit/theme.py,sha256=INbWf7_bWeDdCaWruuJs2pZ6TMrdC_CFMF9Imss8Z1w,37920
|
|
10
10
|
violit/widgets/__init__.py,sha256=DdNdPahOIxEGKnV-MP-amA3jKGnE8GCUxKrtKN2sR9o,877
|
|
11
11
|
violit/widgets/card_widgets.py,sha256=rRGuY-7pArbneILQ8cLkBgiE820S6RCe1a2EZq0ZA3k,23112
|
|
12
12
|
violit/widgets/chart_widgets.py,sha256=WtPRunw_2t45RTPtIHuvEkBd8miTJUL6HOYlVlvHE9k,10681
|
|
@@ -14,13 +14,13 @@ violit/widgets/chat_widgets.py,sha256=YHNY4SDqHJhTi3Lq_5lGl01y9jsJAfbPlH4Ar0UqYC
|
|
|
14
14
|
violit/widgets/data_widgets.py,sha256=NhQnQ_FAD2ey4mXUxaPT67rzjen-BLKU7pZSPmcln5Y,23431
|
|
15
15
|
violit/widgets/form_widgets.py,sha256=QVj-MRVpYzIM3hE8ISS5xZcX3jlTTzjRYSdzhw-K5OY,18327
|
|
16
16
|
violit/widgets/input_widgets.py,sha256=FjuSzNg00PnoQFyQDt6b6pWWrqofVcQeHHJX4L42voU,32768
|
|
17
|
-
violit/widgets/layout_widgets.py,sha256
|
|
17
|
+
violit/widgets/layout_widgets.py,sha256=0P3wLhtTe5SuLjnHYxBLlvNiJPsG91PyjM0-Mx9I9jw,18105
|
|
18
18
|
violit/widgets/list_widgets.py,sha256=2-FWluNGfdBBN24ZyHOC2a8O93-NzGYHZlVYARX4FpI,3836
|
|
19
19
|
violit/widgets/media_widgets.py,sha256=FIMjaE1CIfqnsdMHbbCromjwxoWPfvFKmL0_qd6nDL4,7386
|
|
20
20
|
violit/widgets/status_widgets.py,sha256=ImA8vunM2Vk30-eECyl0eGiN75Nj7qtciwHgwgrymAs,13447
|
|
21
21
|
violit/widgets/text_widgets.py,sha256=yFlcDrJYTQTB25X562xiVZWS0Lz3-tljFxJcGRtAlb4,17867
|
|
22
|
-
violit-0.0.
|
|
23
|
-
violit-0.0.
|
|
24
|
-
violit-0.0.
|
|
25
|
-
violit-0.0.
|
|
26
|
-
violit-0.0.
|
|
22
|
+
violit-0.0.7.dist-info/licenses/LICENSE,sha256=dMxDVLF-GU5ZhQ-GmpL_eY4j7Wn1c4CtmRU8cOnR7Hw,1093
|
|
23
|
+
violit-0.0.7.dist-info/METADATA,sha256=xF14r3nXv1eFzwsnM049NzEWG-hyss8yRBRebJwNFxg,12599
|
|
24
|
+
violit-0.0.7.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
25
|
+
violit-0.0.7.dist-info/top_level.txt,sha256=VormCSpHvTyMyZQ17MwgiPegDJev8HQCN5HUUcxUcE0,7
|
|
26
|
+
violit-0.0.7.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|