Update modules/ui/views/landing_view.py
Browse files- modules/ui/views/landing_view.py +107 -62
modules/ui/views/landing_view.py
CHANGED
@@ -27,61 +27,107 @@ def create_landing_view():
|
|
27 |
# Para el logo
|
28 |
logo_path = get_asset_path('Logo_300x300.png', 'img_logo')
|
29 |
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
# Header con logo
|
86 |
with gr.Column(elem_id="header-logo"):
|
87 |
gr.Image(
|
@@ -93,8 +139,8 @@ def create_landing_view():
|
|
93 |
)
|
94 |
|
95 |
with gr.Row(elem_classes="container"):
|
96 |
-
# Primera columna
|
97 |
-
with gr.Column(scale=1):
|
98 |
with gr.Tabs() as tabs:
|
99 |
# Tab de Login
|
100 |
with gr.TabItem("Iniciar Sesi贸n", elem_classes="gr-form"):
|
@@ -183,12 +229,11 @@ def create_landing_view():
|
|
183 |
outputs=register_message
|
184 |
)
|
185 |
|
186 |
-
# Segunda columna
|
187 |
-
with gr.Column(scale=3):
|
188 |
-
with gr.Tabs():
|
189 |
with gr.TabItem("Introducci贸n"):
|
190 |
-
|
191 |
-
with gr.Box():
|
192 |
gr.Markdown("""
|
193 |
### 驴Qu茅 es AIdeaText?
|
194 |
AIdeaText es una avanzada aplicaci贸n web dise帽ada para mejorar
|
|
|
27 |
# Para el logo
|
28 |
logo_path = get_asset_path('Logo_300x300.png', 'img_logo')
|
29 |
|
30 |
+
# Definir los estilos como una cadena separada para mejor manejo
|
31 |
+
custom_css = """
|
32 |
+
/* Reset y variables */
|
33 |
+
* {
|
34 |
+
margin: 0;
|
35 |
+
padding: 0;
|
36 |
+
box-sizing: border-box;
|
37 |
+
}
|
38 |
+
|
39 |
+
/* Variables de color corporativo */
|
40 |
+
:root {
|
41 |
+
--color-primary: rgb(174, 0, 37);
|
42 |
+
--color-secondary: rgb(7, 60, 99);
|
43 |
+
--color-background: #ffffff;
|
44 |
+
--color-border: #e0e0e0;
|
45 |
+
}
|
46 |
+
|
47 |
+
/* Layout principal */
|
48 |
+
#header-logo {
|
49 |
+
text-align: center;
|
50 |
+
padding: 2rem 0;
|
51 |
+
margin-bottom: 2rem;
|
52 |
+
background-color: var(--color-background);
|
53 |
+
}
|
54 |
+
|
55 |
+
#header-logo img {
|
56 |
+
max-width: 200px;
|
57 |
+
height: auto;
|
58 |
+
display: block;
|
59 |
+
margin: 0 auto;
|
60 |
+
}
|
61 |
+
|
62 |
+
.container {
|
63 |
+
max-width: 1400px;
|
64 |
+
margin: 0 auto;
|
65 |
+
padding: 0 2rem;
|
66 |
+
}
|
67 |
+
|
68 |
+
/* Formularios */
|
69 |
+
.gr-form {
|
70 |
+
border: 1px solid var(--color-border);
|
71 |
+
padding: 1.5rem;
|
72 |
+
border-radius: 8px;
|
73 |
+
background-color: var(--color-background);
|
74 |
+
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
75 |
+
margin-bottom: 1rem;
|
76 |
+
}
|
77 |
+
|
78 |
+
/* Botones */
|
79 |
+
.primary-btn {
|
80 |
+
background-color: var(--color-primary) !important;
|
81 |
+
color: white !important;
|
82 |
+
border: none !important;
|
83 |
+
padding: 0.5rem 1rem !important;
|
84 |
+
border-radius: 4px !important;
|
85 |
+
cursor: pointer !important;
|
86 |
+
transition: opacity 0.3s ease !important;
|
87 |
+
}
|
88 |
+
|
89 |
+
.primary-btn:hover {
|
90 |
+
opacity: 0.9 !important;
|
91 |
+
}
|
92 |
+
|
93 |
+
.secondary-btn {
|
94 |
+
background-color: var(--color-secondary) !important;
|
95 |
+
color: white !important;
|
96 |
+
border: none !important;
|
97 |
+
padding: 0.5rem 1rem !important;
|
98 |
+
border-radius: 4px !important;
|
99 |
+
cursor: pointer !important;
|
100 |
+
transition: opacity 0.3s ease !important;
|
101 |
+
}
|
102 |
+
|
103 |
+
.secondary-btn:hover {
|
104 |
+
opacity: 0.9 !important;
|
105 |
+
}
|
106 |
+
|
107 |
+
/* Tabs */
|
108 |
+
.tabs {
|
109 |
+
border-bottom: 2px solid var(--color-secondary) !important;
|
110 |
+
margin-bottom: 1rem !important;
|
111 |
+
}
|
112 |
+
|
113 |
+
.tab-selected {
|
114 |
+
color: var(--color-primary) !important;
|
115 |
+
border-bottom: 2px solid var(--color-primary) !important;
|
116 |
+
font-weight: bold !important;
|
117 |
+
}
|
118 |
+
|
119 |
+
/* Contenido multimedia */
|
120 |
+
.media-box {
|
121 |
+
padding: 1.5rem;
|
122 |
+
background-color: var(--color-background);
|
123 |
+
border-radius: 8px;
|
124 |
+
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
125 |
+
}
|
126 |
+
"""
|
127 |
+
|
128 |
+
with gr.Blocks(css=custom_css) as view:
|
129 |
+
# El resto del c贸digo permanece igual pero con algunas modificaciones en las clases
|
130 |
+
|
131 |
# Header con logo
|
132 |
with gr.Column(elem_id="header-logo"):
|
133 |
gr.Image(
|
|
|
139 |
)
|
140 |
|
141 |
with gr.Row(elem_classes="container"):
|
142 |
+
# Primera columna (25%)
|
143 |
+
with gr.Column(scale=1):
|
144 |
with gr.Tabs() as tabs:
|
145 |
# Tab de Login
|
146 |
with gr.TabItem("Iniciar Sesi贸n", elem_classes="gr-form"):
|
|
|
229 |
outputs=register_message
|
230 |
)
|
231 |
|
232 |
+
# Segunda columna (75%)
|
233 |
+
with gr.Column(scale=3):
|
234 |
+
with gr.Tabs(elem_classes="content-tabs"):
|
235 |
with gr.TabItem("Introducci贸n"):
|
236 |
+
with gr.Box(elem_classes="media-box"):
|
|
|
237 |
gr.Markdown("""
|
238 |
### 驴Qu茅 es AIdeaText?
|
239 |
AIdeaText es una avanzada aplicaci贸n web dise帽ada para mejorar
|