Update modules/ui/views/landing_view.py
Browse files- modules/ui/views/landing_view.py +68 -20
modules/ui/views/landing_view.py
CHANGED
@@ -23,18 +23,63 @@ def get_asset_path(filename, asset_type='img_logo'):
|
|
23 |
return str(asset_path)
|
24 |
|
25 |
def create_landing_view():
|
26 |
-
"""Crea la vista de landing con
|
27 |
# Para el logo
|
28 |
logo_path = get_asset_path('Logo_300x300.png', 'img_logo')
|
29 |
-
# Para iconos de social media.
|
30 |
-
social_icon_path = get_asset_path('twitter.png', 'img_social-media')
|
31 |
|
32 |
with gr.Blocks(
|
33 |
css="""
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
"""
|
39 |
) as view:
|
40 |
# Header con logo
|
@@ -46,11 +91,10 @@ def create_landing_view():
|
|
46 |
container=False,
|
47 |
height=200
|
48 |
)
|
49 |
-
#gr.Markdown("# Bienvenido a AIdeaText")
|
50 |
|
51 |
with gr.Row(elem_classes="container"):
|
52 |
-
# Primera columna - Tabs de Login y Registro (
|
53 |
-
with gr.Column(scale=1):
|
54 |
with gr.Tabs() as tabs:
|
55 |
# Tab de Login
|
56 |
with gr.TabItem("Iniciar Sesi贸n", elem_classes="gr-form"):
|
@@ -67,11 +111,11 @@ def create_landing_view():
|
|
67 |
login_button = gr.Button(
|
68 |
"Ingresar",
|
69 |
variant="primary",
|
70 |
-
|
71 |
)
|
72 |
login_message = gr.Markdown()
|
73 |
|
74 |
-
# Tab de Registro
|
75 |
with gr.TabItem("Solicitud de Acceso", elem_classes="gr-form"):
|
76 |
with gr.Column():
|
77 |
name = gr.Textbox(
|
@@ -139,16 +183,20 @@ def create_landing_view():
|
|
139 |
outputs=register_message
|
140 |
)
|
141 |
|
142 |
-
# Segunda columna - Videos (
|
143 |
-
with gr.Column(scale=
|
144 |
with gr.Tabs():
|
145 |
with gr.TabItem("Introducci贸n"):
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
|
|
|
|
|
|
|
|
152 |
|
153 |
with gr.TabItem("Tutorial"):
|
154 |
gr.Markdown("""
|
|
|
23 |
return str(asset_path)
|
24 |
|
25 |
def create_landing_view():
|
26 |
+
"""Crea la vista de landing con header y distribuci贸n 25-75"""
|
27 |
# Para el logo
|
28 |
logo_path = get_asset_path('Logo_300x300.png', 'img_logo')
|
|
|
|
|
29 |
|
30 |
with gr.Blocks(
|
31 |
css="""
|
32 |
+
/* Variables de color corporativo */
|
33 |
+
:root {
|
34 |
+
--color-primary: rgb(174, 0, 37); /* Rojo corporativo */
|
35 |
+
--color-secondary: rgb(7, 60, 99); /* Azul corporativo */
|
36 |
+
}
|
37 |
+
|
38 |
+
/* Estilos del header */
|
39 |
+
#header-logo {
|
40 |
+
text-align: center;
|
41 |
+
padding: 2rem 0;
|
42 |
+
margin-bottom: 2rem;
|
43 |
+
}
|
44 |
+
#header-logo img {
|
45 |
+
max-width: 200px;
|
46 |
+
height: auto;
|
47 |
+
}
|
48 |
+
|
49 |
+
/* Contenedor principal */
|
50 |
+
.container {
|
51 |
+
max-width: 1400px;
|
52 |
+
margin: 0 auto;
|
53 |
+
padding: 0 1rem;
|
54 |
+
}
|
55 |
+
|
56 |
+
/* Estilos de formularios */
|
57 |
+
.gr-form {
|
58 |
+
border: 1px solid #e0e0e0;
|
59 |
+
padding: 20px;
|
60 |
+
border-radius: 8px;
|
61 |
+
background-color: #ffffff;
|
62 |
+
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
63 |
+
}
|
64 |
+
|
65 |
+
/* Estilos de botones */
|
66 |
+
.primary-btn {
|
67 |
+
background-color: var(--color-primary) !important;
|
68 |
+
color: white !important;
|
69 |
+
}
|
70 |
+
.secondary-btn {
|
71 |
+
background-color: var(--color-secondary) !important;
|
72 |
+
color: white !important;
|
73 |
+
}
|
74 |
+
|
75 |
+
/* Tabs personalizados */
|
76 |
+
.tabs {
|
77 |
+
border-bottom-color: var(--color-secondary);
|
78 |
+
}
|
79 |
+
.tab-selected {
|
80 |
+
color: var(--color-primary) !important;
|
81 |
+
border-color: var(--color-primary) !important;
|
82 |
+
}
|
83 |
"""
|
84 |
) as view:
|
85 |
# Header con logo
|
|
|
91 |
container=False,
|
92 |
height=200
|
93 |
)
|
|
|
94 |
|
95 |
with gr.Row(elem_classes="container"):
|
96 |
+
# Primera columna - Tabs de Login y Registro (25%)
|
97 |
+
with gr.Column(scale=1): # scale=1 de 4 = 25%
|
98 |
with gr.Tabs() as tabs:
|
99 |
# Tab de Login
|
100 |
with gr.TabItem("Iniciar Sesi贸n", elem_classes="gr-form"):
|
|
|
111 |
login_button = gr.Button(
|
112 |
"Ingresar",
|
113 |
variant="primary",
|
114 |
+
elem_classes="primary-btn"
|
115 |
)
|
116 |
login_message = gr.Markdown()
|
117 |
|
118 |
+
# Tab de Registro #####################################################################
|
119 |
with gr.TabItem("Solicitud de Acceso", elem_classes="gr-form"):
|
120 |
with gr.Column():
|
121 |
name = gr.Textbox(
|
|
|
183 |
outputs=register_message
|
184 |
)
|
185 |
|
186 |
+
# Segunda columna - Videos (75%)
|
187 |
+
with gr.Column(scale=3): # scale=3 de 4 = 75%
|
188 |
with gr.Tabs():
|
189 |
with gr.TabItem("Introducci贸n"):
|
190 |
+
# Contenedor para im谩genes/videos con mejor estilo
|
191 |
+
with gr.Box():
|
192 |
+
gr.Markdown("""
|
193 |
+
### 驴Qu茅 es AIdeaText?
|
194 |
+
AIdeaText es una avanzada aplicaci贸n web dise帽ada para mejorar
|
195 |
+
las habilidades de redacci贸n y comprensi贸n lectora a trav茅s
|
196 |
+
del an谩lisis visual de textos potenciado por distintas tecnolog铆as
|
197 |
+
de inteligencia artificial.
|
198 |
+
""")
|
199 |
+
# Aqu铆 puedes agregar im谩genes o videos con mejor dise帽
|
200 |
|
201 |
with gr.TabItem("Tutorial"):
|
202 |
gr.Markdown("""
|