initial style and langcode config

This commit is contained in:
María
2025-10-17 18:04:39 +02:00
committed by María
parent d6859c386f
commit ddc623411a
61 changed files with 262 additions and 1236 deletions

View File

@@ -1,15 +1,20 @@
@import "tailwindcss";
@theme {
--font-barlow: 'Barlow', sans-serif;
--font-barlow-semi-condensed: 'BarlowSemiCondensed', sans-serif;
/* Fonts */
--font-montserrat: "Montserrat", sans-serif;
--font-inter: "Inter", sans-serif;
/* Color base */
--color-accent: #3F38C8;
--color-accent: #FFFFFF;
--color-on-accent: #4F2773;
--color-bg: #3B1E5A;
--color-surface: #4F2773;
--color-black: #1E1E1E;
--color-white: #FFFFFF;
--color-gray-light: #B9B9B9;
--color-muted: #6D6D6D;
--color-muted: #DBDBDB;
--color-border: #E7E7E7
--color-error: #B91C1C;
--color-success: #039B65;
@@ -96,61 +101,88 @@
@font-face {
font-family: "BarlowSemiCondensed";
font-family: "Montserrat";
font-style: normal;
font-weight: 700;
src: local("Barlow SemiCondensed Bold"), local("BarlowBarlowSemiCondensed-Bold"),
url(../fonts/BarlowSemiCondensed/BarlowSemiCondensed-Bold.ttf) format("opentype");
src: local("Montserrat Bold"), local("Montserrat-Bold"),
url(../fonts/Montserrat/Montserrat-Bold.ttf) format("opentype");
}
@font-face {
font-family: "Barlow";
font-style: normal;
font-weight: 700;
src: local("Barlow Bold"), local("Barlow-Bold"),
url(../fonts/Barlow/Barlow-Bold.ttf) format("opentype");
}
@font-face {
font-family: "Barlow";
font-family: "Montserrat";
font-style: normal;
font-weight: 600;
src: local("Barlow Semibold"), local("Barlow-Semibold"),
url(../fonts/Barlow/Barlow-Semibold.ttf) format("opentype");
src: local("Montserrat Semibold"), local("Montserrat-Semibold"),
url(../fonts/Montserrat/Montserrat-Semibold.ttf) format("opentype");
}
@font-face {
font-family: "Barlow";
font-family: "Montserrat";
font-style: normal;
font-weight: 500;
src: local("Barlow Medium"), local("Barlow-Medium"),
url(../fonts/Barlow/Barlow-Medium.ttf) format("opentype");
src: local("Montserrat Medium"), local("Montserrat-Medium"),
url(../fonts/Montserrat/Montserrat-Medium.ttf) format("opentype");
}
@font-face {
font-family: "Barlow";
font-family: "Montserrat";
font-style: normal;
font-weight: 400;
src: local("Barlow Regular"), local("Barlow-Regular"),
url(../fonts/Barlow/Barlow-Regular.ttf) format("opentype");
src: local("Montserrat Regular"), local("Montserrat-Regular"),
url(../fonts/Montserrat/Montserrat-Regular.ttf) format("opentype");
}
@font-face {
font-family: "Inter";
font-style: normal;
font-weight: 700;
src: local("Inter Bold"), local("Inter-Bold"),
url(../fonts/Inter/Inter_18pt-Bold.ttf) format("opentype");
}
@font-face {
font-family: "Inter";
font-style: normal;
font-weight: 600;
src: local("Inter Semibold"), local("Inter-Semibold"),
url(../fonts/Inter/Inter_18pt-Semibold.ttf) format("opentype");
}
@font-face {
font-family: "Inter";
font-style: normal;
font-weight: 500;
src: local("Inter Medium"), local("Inter-Medium"),
url(../fonts/Inter/Inter_18pt-Medium.ttf) format("opentype");
}
@font-face {
font-family: "Inter";
font-style: normal;
font-weight: 400;
src: local("Inter Regular"), local("Inter-Regular"),
url(../fonts/Inter/Inter_18pt-Regular.ttf) format("opentype");
}
html,
body {
font-family: var(--font-barlow);
font-family: var(--font-inter);
font-size: var(--default-font-size, 16px);
height: 100dvh;
color: var(--color-black);
background-color: var(--color-background-extra-light);
height: 100%;
margin: 0;
padding: 0;
}
header {
/* header {
position: sticky;
top: 0;
z-index: 20;
}
}*/
body footer {
footer {
position: sticky;
top: 100dvh;
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 KiB

View File

@@ -31,19 +31,20 @@ export default {
computed: {
buttonClasses() {
return {
"px-3.5 py-1 gap-x-2 text-sm": this.size === "xs",
"px-3.5 py-2 gap-x-2 text-sm": this.size === "sm",
"px-5 py-2.5 gap-x-2 text-sm": this.size === "md",
"px-6 py-4 gap-x-1 text-base": this.size === "lg",
"bg-accent hover:bg-accent/90 focus:bg-accent border border-accent focus:border-accent/50 text-white rounded-lg":
"bg-accent hover:bg-[#E7E7E7] focus:bg-muted border border-surface focus:border-surface text-surface focus:text-accent rounded-lg":
this.color === "accent" && !this.disabled,
"bg-accent/55 border border-accent/10 cursor-not-allowed text-white rounded-lg":
this.color === "accent" && this.disabled,
"bg-white border border-accent text-accent hover:bg-accent focus:bg-white focus:text-accent focus:border focus:border-accent/50 hover:text-white rounded-lg":
this.color === "transparent" && !this.disabled,
"bg-white cursor-not-allowed text-accent/50 border border-accent/50 rounded-lg":
this.color === "transparent" && this.disabled,
"bg-surface hover:bg-accent border border-surface text-accent focus:bg-surface focus:text-accent focus:border focus:border-accent/50 hover:text-surface rounded-lg":
this.color === "surface" && !this.disabled,
"bg-surface cursor-not-allowed text-accent/50 border border-accent/50 rounded-lg":
this.color === "surface" && this.disabled,
};
}

24
components/FooterComp.vue Normal file
View File

@@ -0,0 +1,24 @@
<template>
<footer class="bg-bg text-white flex flex-col lg:flex-row items-center justify-between px-6 py-4 gap-5 min-h-[60px]">
<div class="flex items-start sm:items-center justify-between gap-4 w-full">
<img src="../public/LOGOBraviooB.png" alt="logo-bravio-blanco" class="h-12 md:h-14 object-cover" />
<div class="flex flex-col sm:flex-row gap-4 w-full text-right">
<a href="#" class="text-xs sm:text-sm">{{ langcode === 'es' ? 'Proyecto Erasmus Bravioo' : 'Projeto Erasmus Bravioo' }}</a>
<a href="#" class="text-xs sm:text-sm">{{ langcode === 'es' ? 'Mapa de defensorias universitarias' : 'Mapa dos gabinetes de defesa da universidade' }}</a>
</div>
</div>
<div class="flex items-center justify-between lg:justify-end gap-4 w-full">
<img src="../public/EN_Co-fundedbytheEU_RGB_WHITE Outline 1.png" alt="logo-bravio-blanco" class="h-10 md:h-14 object-cover" />
<img src="../public/erasmus.png" alt="logo-bravio-blanco" class="h-10 md:h-14 object-cover" />
</div>
</footer>
</template>
<script>
import { mapGetters } from 'vuex';
export default {
computed: {
...mapGetters(['langcode'])
}
}
</script>

View File

@@ -1,25 +1,32 @@
<template>
<section class="bg-white flex items-center justify-center p-4 min-h-[100dvh]">
<section class="flex flex-1 sm:items-center justify-center pt-10 pb-[60px] px-4 sm:p-4">
<div
class="rounded-2xl p-6 md:p-10 border border-gray-200 min-w-80dvh max-w-2xl w-full"
:class="{'bg-[#FBF4FF]': type === 'feedback'}">
<!-- <FullscreenButton v-if="isFullscreenEnabled" class="ml-auto" /> -->
class="rounded-2xl px-4 sm:px-10 py-12 w-full max-w-2xl"
:class="{
'bg-surface text-white': type === 'welcome',
'bg-surface text-white h-fit': type === 'question',
'bg-[#82DBDF] text-surface': type === 'feedback'
}">
<slot />
</div>
</section>
</template>
<script>
import FullscreenButton from './FullscreenButton.vue'
//import FullscreenButton from './FullscreenButton.vue'
export default {
components: { FullscreenButton },
//components: { FullscreenButton },
props: {
type: {
type: String,
default: "default"
}
},
data() {
return {
backgroundImage: 'mapamundi-fondo.png'
};
},
computed: {
isFullscreenEnabled() {
if (document.fullscreenElement)
@@ -29,3 +36,11 @@ export default {
}
};
</script>
<style>
section {
background-image: url('/assets/img/mapamundi-fondo.png');
background-size: cover;
background-position: center;
}
</style>

86
components/NavBar.vue Normal file
View File

@@ -0,0 +1,86 @@
<template>
<header class="w-full bg-white border-b border-gray-200">
<div class="flex flex-col">
<div class="flex items-center justify-between px-6 py-3">
<div class="flex items-center gap-x-2 sm:gap-x-4">
<img src="../public/logo-bravio.png" alt="logo-bravio" class="h-10 md:h-14 object-cover" />
<div class="w-0.25 h-10 bg-bg"></div>
<p class="text-sm md:text-base font-semibold text-bg font-montserrat text-wrap sm:text-nowrap">
{{ langcode === 'es' ? 'ASISTENTE VIRTUAL' : 'ASSISTENTE VIRTUAL' }}
</p>
</div>
<div class="flex items-center space-x-2">
<ButtonCTA
v-for="(lang, index) in languages"
:key="index"
size="xs"
:color="lang.code === langcode ? 'surface' : 'accent'"
:class="{
'hidden sm:block': lang.code !== langcode
}"
@click="handleLanguage(lang.code)"
>
{{ lang.label }}
</ButtonCTA>
</div>
</div>
<div class="bg-bg font-montserrat text-white text-sm md:text-base font-medium text-center md:text-left py-2 px-6">
{{ langcode === 'es' ? 'Crea tu Defensoría con guía y recursos' : 'Crie sua Defensoria com orientação e recursos' }}
</div>
</div>
</header>
</template>
<script>
import { mapActions } from 'vuex';
export default {
name: 'HeaderBravio',
props: {
logo: {
type: String,
default: '/public/logo-bravio.png'
}
},
data() {
return {
languages: [
{ code: 'es', label: 'Español', active: true },
{ code: 'pt', label: 'Português', active: false }
],
langcode: 'es'
};
},
watch: {
langcode(newValue, oldValue) {
if (newValue !== oldValue) {
this.setLangcode(this.langcode)
localStorage.setItem('langcode', this.langcode)
}
}
},
mounted() {
let lang = localStorage.getItem('langcode')
// Si no hay idioma guardado o está mal definido
if (!lang || lang === 'undefined' || lang === 'null') {
// Valor por defecto (español)
lang = 'es'
localStorage.setItem('langcode', lang)
}
this.langcode = lang
this.setLangcode(lang)
},
methods: {
...mapActions(['setLangcode']),
handleLanguage(code) {
this.langcode = code;
this.setLangcode(code);
// Aquí puedes agregar la lógica real para cambiar idioma en Nuxt i18n
console.log('Idioma cambiado a:', code);
}
}
};
</script>

View File

@@ -1,27 +1,29 @@
<template>
<div class="space-y-6">
<form @submit.prevent="handleSubmit" class="space-y-4">
<p class="text-sm text-muted">
<form class="" @submit.prevent="handleSubmit">
<!-- <p class="text-sm text-muted">
Pregunta {{ currentIndex + 1 }} de {{ total }}
</p>
</p> -->
<div class="flex flex-col gap-4">
<div class="flex flex-col gap-1">
<h2 class="text-xl font-semibold text-gray-900">{{ data.section.title }}</h2>
<p v-if="data.section.description" class="text-muted text-xs">{{ data.section.description }}</p>
<div class="flex gap-2">
<img src="../public/icono-bravioo.svg" alt="logo-bravio" class="h-6 w-6 object-cover" />
<div class="flex flex-col gap-1">
<h2 class="text-xl font-semibold">{{ data.section.title[langcode] }}</h2>
<p v-if="data.section.description" class="text-muted text-xs">{{ data.section.description[langcode] }}</p>
</div>
</div>
<div class="flex flex-col gap-1">
<h3 class="text-base font-semibold text-gray-900">{{ data.question.title }}</h3>
<p v-if="data.question.description" class="text-muted text-xs">{{ data.question.description }}</p>
<h3 class="text-base font-semibold">{{ data.question.title[langcode] }}</h3>
<p v-if="data.question.description" class="text-muted text-xs">{{ data.question.description[langcode] }}</p>
</div>
<p v-if="data.question.recommendation" class="w-fit text-xs bg-[#AFE3D2] px-3 py-1 rounded-3xl"><strong>Recomendado:</strong> {{ data.question.recommendation }}</p>
<!-- <p v-if="data.question.recommendation" class="w-fit text-xs bg-[#AFE3D2] px-3 py-1 rounded-3xl"><strong>Recomendado:</strong> {{ data.question.recommendation[langcode] }}</p> -->
</div>
<template v-if="inputComponent">
<component
:is="inputComponent"
:key="data.question"
:key="data.question.id"
v-bind="inputProps"
:required="data.input.required || false"
@input-value="localValue = $event"
/>
@@ -48,6 +50,7 @@
</template>
<script>
import { mapGetters } from "vuex"
import InputText from "@/components/InputText.vue"
import InputEmail from "@/components/InputEmail.vue"
import InputTextarea from "@/components/InputTextarea.vue"
@@ -86,6 +89,7 @@ export default {
},
computed: {
...mapGetters(['langcode']),
inputComponent() {
switch (this.data.input.type) {
case "text": return "InputText"

View File

@@ -1,22 +1,23 @@
<template>
<div class="flex flex-col justify-center items-center text-center space-y-4">
<h1 class="text-3xl font-bold">
{{ data.title }}
</h1>
<p class="text-xl font-semibold">
{{ data.subtitle }}
</p>
<button-CTA
<div class="flex flex-col justify-center items-center text-center gap-y-6 h-full">
<h1 class="text-3xl font-bold">{{ data.title[langcode] }}</h1>
<p class="text-xl">{{ data.subtitle[langcode] }}</p>
<ButtonCTA
color="accent"
class="mt-4"
@click="$emit('next')"
>
{{ data.button }}
</button-CTA>
{{ data.button[langcode] }}
</ButtonCTA>
<p class="text-xs text-center mt-4">
{{ langcode ? "Toma 810 minutos. Solo necesitas datos básicos de tu universidad." : "Leva de 8 a 10 minutos. Você só precisa de dados básicos da sua universidade." }}
</p>
</div>
</template>
<script>
import ButtonCTA from './ButtonCTA.vue'
import { mapGetters } from 'vuex';
export default {
components: { ButtonCTA },
props: {
@@ -24,6 +25,10 @@ export default {
type: Object,
default: () => ({ title: "Welcome", subtitle: "", button: "Start" })
}
},
emits: ['next'],
computed: {
...mapGetters(['langcode'])
}
}
</script>

View File

@@ -1,505 +0,0 @@
export const surveyData = {
title: "Formulario Demo",
slices: [
{
id: "welcome",
type: "welcome",
section: {
title: "Introducción",
description: ""
},
title: "Bienvenida a Certifica-T",
subtitle: "Cuestionario de evaluación",
button: "Comenzar",
next: "B0-01"
},
{
id: "B0-01",
type: "question",
section: {
id: "B0",
title: "1. Estrategia y gobernanza",
description: "",
},
question: {
title: "a) Cuenta con una memoria o plan de sostenibilidad aprobado",
description: "Siendo 1 la puntuación más baja y 5 la más alta.",
recommendation: ""
},
input: {
type: "range",
label: "",
options: [
{ value: "1", label: "1", score: 1},
{ value: "2", label: "2", score: 2},
{ value: "3", label: "3", score: 3},
{ value: "4", label: "4", score: 4},
{ value: "5", label: "5", score: 5},
]
},
questionTotalPoints: 5,
next: "B0-02"
},
{
id: "B0-02",
type: "question",
section: {
id: "B0",
title: "1. Estrategia y gobernanza",
description: "",
},
question: {
title: "b) Integra criterios sociales y ambientales en decisiones estratégicas.",
description: "Siendo 1 la puntuación más baja y 5 la más alta.",
recommendation: ""
},
input: {
type: "range",
label: "",
options: [
{ value: "1", label: "1", score: 1},
{ value: "2", label: "2", score: 2},
{ value: "3", label: "3", score: 3},
{ value: "4", label: "4", score: 4},
{ value: "5", label: "5", score: 5},
]
},
questionTotalPoints: 5,
next: "B0-03"
},
{
id: "B0-03",
type: "question",
section: {
id: "B0",
title: "1. Estrategia y gobernanza",
description: "",
},
question: {
title: "c) Existe un equipo o responsable de sostenibilidad",
description: "Siendo 1 la puntuación más baja y 5 la más alta.",
recommendation: ""
},
input: {
type: "range",
label: "",
options: [
{ value: "1", label: "1", score: 1},
{ value: "2", label: "2", score: 2},
{ value: "3", label: "3", score: 3},
{ value: "4", label: "4", score: 4},
{ value: "5", label: "5", score: 5},
]
},
questionTotalPoints: 5,
next: "F0"
},
{
id: "F0",
type: "feedback",
section: {
id: "B0",
title: "1. Estrategia y gobernanza",
description: ""
},
title: "Resultados del bloque",
subtitle: "",
button: "Entendido · Continuar",
next: "B1-01"
},
{
id: "B1-01",
type: "question",
section: {
id: "B1",
title: "2. Impacto social",
description: "",
},
question: {
title: "a) Mide indicadores sociales (empleo local, inclusión, igualdad)",
description: "Siendo 1 la puntuación más baja y 5 la más alta.",
recommendation: ""
},
input: {
type: "range",
label: "",
options: [
{ value: "1", label: "1", score: 1},
{ value: "2", label: "2", score: 2},
{ value: "3", label: "3", score: 3},
{ value: "4", label: "4", score: 4},
{ value: "5", label: "5", score: 5},
]
},
questionTotalPoints: 5,
next: "B1-02"
},
{
id: "B1-02",
type: "question",
section: {
id: "B1",
title: "2. Impacto social",
description: "",
},
question: {
title: "b) Realiza acciones con la comunidad o grupos vulnerables",
description: "Siendo 1 la puntuación más baja y 5 la más alta.",
recommendation: ""
},
input: {
type: "range",
label: "",
options: [
{ value: "1", label: "1", score: 1},
{ value: "2", label: "2", score: 2},
{ value: "3", label: "3", score: 3},
{ value: "4", label: "4", score: 4},
{ value: "5", label: "5", score: 5},
]
},
questionTotalPoints: 5,
next: "B1-03"
},
{
id: "B1-03",
type: "question",
section: {
id: "B1",
title: "2. Impacto social",
description: "",
},
question: {
title: "c) Publica resultados sociales de forma transparente",
description: "Siendo 1 la puntuación más baja y 5 la más alta.",
recommendation: ""
},
input: {
type: "range",
label: "",
options: [
{ value: "1", label: "1", score: 1},
{ value: "2", label: "2", score: 2},
{ value: "3", label: "3", score: 3},
{ value: "4", label: "4", score: 4},
{ value: "5", label: "5", score: 5},
]
},
questionTotalPoints: 5,
next: "F1"
},
{
id: "F1",
type: "feedback",
section: {
id: "B1",
title: "2. Impacto social",
description: ""
},
title: "Resultados del bloque",
subtitle: "",
button: "Entendido · Continuar",
next: "B2-01"
},
{
id: "B2-01",
type: "question",
section: {
id: "B2",
title: "3. Impacto ambiental",
description: "",
},
question: {
title: "a) Mide y reduce consumo de energía, agua y recursos.",
description: "Siendo 1 la puntuación más baja y 5 la más alta.",
recommendation: ""
},
input: {
type: "range",
label: "",
options: [
{ value: "1", label: "1", score: 1},
{ value: "2", label: "2", score: 2},
{ value: "3", label: "3", score: 3},
{ value: "4", label: "4", score: 4},
{ value: "5", label: "5", score: 5},
]
},
questionTotalPoints: 5,
next: "B2-02"
},
{
id: "B2-02",
type: "question",
section: {
id: "B2",
title: "3. Impacto ambiental",
description: "",
},
question: {
title: "b) Gestiona residuos y emisiones con objetivos claros",
description: "Siendo 1 la puntuación más baja y 5 la más alta.",
recommendation: ""
},
input: {
type: "range",
label: "",
options: [
{ value: "1", label: "1", score: 1},
{ value: "2", label: "2", score: 2},
{ value: "3", label: "3", score: 3},
{ value: "4", label: "4", score: 4},
{ value: "5", label: "5", score: 5},
]
},
questionTotalPoints: 5,
next: "B2-03"
},
{
id: "B2-03",
type: "question",
section: {
id: "B2",
title: "3. Impacto ambiental",
description: "",
},
question: {
title: "c) Utiliza energías renovables o soluciones circulares",
description: "Siendo 1 la puntuación más baja y 5 la más alta.",
recommendation: ""
},
input: {
type: "range",
label: "",
options: [
{ value: "1", label: "1", score: 1},
{ value: "2", label: "2", score: 2},
{ value: "3", label: "3", score: 3},
{ value: "4", label: "4", score: 4},
{ value: "5", label: "5", score: 5},
]
},
questionTotalPoints: 5,
next: "F2"
},
{
id: "F2",
type: "feedback",
section: {
id: "B2",
title: "3. Impacto ambiental",
description: ""
},
title: "Resultados del bloque",
subtitle: "",
button: "Entendido · Continuar",
next: "B3-01"
},
{
id: "B3-01",
type: "question",
section: {
id: "B3",
title: "4. Transparencia y comunicación",
description: "",
},
question: {
title: "a) Elabora algún informe no financiero o memoria social",
description: "Siendo 1 la puntuación más baja y 5 la más alta.",
recommendation: ""
},
input: {
type: "range",
label: "",
options: [
{ value: "1", label: "1", score: 1},
{ value: "2", label: "2", score: 2},
{ value: "3", label: "3", score: 3},
{ value: "4", label: "4", score: 4},
{ value: "5", label: "5", score: 5},
]
},
questionTotalPoints: 5,
next: "B3-02"
},
{
id: "B3-02",
type: "question",
section: {
id: "B3",
title: "4. Transparencia y comunicación",
description: "",
},
question: {
title: "b) Informa de los resultados conforme a estándares reconocidos (GRI, RSE, etc.)",
description: "Siendo 1 la puntuación más baja y 5 la más alta.",
recommendation: ""
},
input: {
type: "range",
label: "",
options: [
{ value: "1", label: "1", score: 1},
{ value: "2", label: "2", score: 2},
{ value: "3", label: "3", score: 3},
{ value: "4", label: "4", score: 4},
{ value: "5", label: "5", score: 5},
]
},
questionTotalPoints: 5,
next: "B3-03"
},
{
id: "B3-03",
type: "question",
section: {
id: "B3",
title: "4. Transparencia y comunicación",
description: "",
},
question: {
title: "c) Comunicación externa incluye logros y objetivos reales",
description: "Siendo 1 la puntuación más baja y 5 la más alta.",
recommendation: ""
},
input: {
type: "range",
label: "",
options: [
{ value: "1", label: "1", score: 1},
{ value: "2", label: "2", score: 2},
{ value: "3", label: "3", score: 3},
{ value: "4", label: "4", score: 4},
{ value: "5", label: "5", score: 5},
]
},
questionTotalPoints: 5,
next: "F3"
},
{
id: "F3",
type: "feedback",
section: {
id: "B3",
title: "4. Transparencia y comunicación",
description: ""
},
title: "Resultados del bloque",
subtitle: "",
button: "Entendido · Continuar",
next: "B4-01"
},
{
id: "B4-01",
type: "question",
section: {
id: "B4",
title: "5. Cumplimiento normativo y certificaciones previas",
description: "",
},
question: {
title: "a) Cumple requisitos legales ambientales, igualdad, laborales",
description: "Siendo 1 la puntuación más baja y 5 la más alta.",
recommendation: ""
},
input: {
type: "range",
label: "",
options: [
{ value: "1", label: "1", score: 1},
{ value: "2", label: "2", score: 2},
{ value: "3", label: "3", score: 3},
{ value: "4", label: "4", score: 4},
{ value: "5", label: "5", score: 5},
]
},
questionTotalPoints: 5,
next: "B4-02"
},
{
id: "B4-02",
type: "question",
section: {
id: "B4",
title: "5. Cumplimiento normativo y certificaciones previas",
description: "",
},
question: {
title: "b) Cuenta ya con algún certificado (ISO, Comercio Justo, etc.)",
description: "Siendo 1 la puntuación más baja y 5 la más alta.",
recommendation: ""
},
input: {
type: "range",
label: "",
options: [
{ value: "1", label: "1", score: 1},
{ value: "2", label: "2", score: 2},
{ value: "3", label: "3", score: 3},
{ value: "4", label: "4", score: 4},
{ value: "5", label: "5", score: 5},
]
},
questionTotalPoints: 5,
next: "F4"
},
{
id: "F4",
type: "feedback",
section: {
id: "B4",
title: "5. Cumplimiento normativo y certificaciones previas",
description: ""
},
title: "Resultados del bloque",
subtitle: "",
button: "Entendido · Continuar",
next: "end"
},
{
id: "end",
type: "end",
title: "¡Aquí están los resultados!",
subtitle: "Gracias por completar el cuestionario.",
}
],
rules: {
B0: (score) => {
if (score <= 12) return "Redactar y aprobar una memoria de sostenibilidad alineada con los valores de la entidad.<br>Nombrar a una persona responsable (aunque sea a tiempo parcial).<br>Incluir objetivos sociales y ambientales en el plan estratégico"
if (score > 12 && score < 21) return "Revisar y actualizar la política de sostenibilidad.<br>Establecer un grupo de trabajo en sostenibilidad<br>Definir indicadores clave y medirlos periódicamente.<br>Definir indicadores clave y medirlos periódicamente"
return "¡Estáis en buen camino!"
},
B1: (score) => {
if (score <= 12) return "Diseñar un sistema simple para medir empleo local, inclusión y equidad.<br>Desarrollar programas o colaboraciones con la comunidad.<br>Documentar buenas prácticas sociales."
if (score > 12 && score < 21) return "Ampliar el sistema de medición a nuevos indicadores sociales.<br>Formalizar la comunicación de los logros sociales<br>Involucrar a socios y trabajadores en proyectos de impacto social."
return "¡Estáis en buen camino!"
},
B2: (score) => {
if (score <= 12) return "Medir el consumo de energía, agua y recursos al menos trimestralmente.<br>Implementar un plan básico de gestión de residuos y emisiones.<br>Explorar opciones de energías renovables accesibles."
if (score > 12 && score < 21) return "Establecer objetivos de reducción con plazos<br>Documentar mejoras ambientales logradas<br>Iniciar un plan de economía circular o reutilización"
return "¡Estáis en buen camino!"
},
B3: (score) => {
if (score <= 12) return "Elaborar un primer informe de sostenibilidad (puede ser breve)<br>Publicar compromisos y acciones en la web o redes<br>Adoptar un formato sencillo de reporte basado en GRI o similar"
if (score > 12 && score < 21) return "Incluir objetivos y áreas de mejora en la comunicación<br>Verificar externamente la información clave<br>Capacitar al equipo en comunicación responsable"
return "¡Estáis en buen camino!"
},
B4: (score) => {
if (score <= 12) return "Revisar el cumplimiento legal en materia ambiental, laboral y de igualdad<br>Corregir incumplimientos y documentar las acciones<br>Investigar certificaciones sectoriales básicas"
if (score > 12 && score < 21) return "Preparar auditorías internas anuales<br>Renovar o ampliar certificaciones existentes<br>Integrar criterios legales en la gestión diaria"
return "¡Estáis en buen camino!"
}
},
finalRecommendations: {
total: (score) => {
if (score <= 25) {
return "Certificado regional de RSE, Informe básico GRI no certificado, memoria de sostenibilidad"
} else if (score <= 40) {
return "B Corp, ISO 14001, ISO 45001"
} else {
return "GRI verificado, EMAS, combinación B Corp + GRI verificado"
}
}
}
}

View File

@@ -1,655 +0,0 @@
export const surveyData = {
title: "Formulario Demo",
slices: [
{
id: "welcome",
type: "welcome",
section: {
title: "Introducción",
description: ""
},
title: "Bienvenida a Iguales",
subtitle: "Cuestionario de evaluación",
button: "Comenzar",
next: "B0-01"
},
{
id: "B0-01",
type: "question",
section: {
id: "B0",
title: "1. Informativa",
description: "",
},
question: {
title: "a) Nº de trabajadores",
description: "Por favor, selecciona una opción",
recommendation: ""
},
input: {
type: "radio",
label: "Sector",
options: [
{ value: "<50", label: "Inferior a 50", score: 0},
{ value: ">50", label: "Superior a 50", score: 0},
],
},
questionTotalPoints: 1,
next: "end"
},
{
id: "B0-02",
type: "question",
section: {
id: "B0",
title: "1. Informativa",
description: "",
},
question: {
title: "b) ¿Tiene plan de igualdad?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
{ value: "nsnc", label: "No sabe / No contesta", score: 0},
],
},
questionTotalPoints: 1,
next: "B1-01"
},
{
id: "B1-01",
type: "question",
section: {
id: "B1",
title: "2. Brecha de género y salarial",
description: "",
},
question: {
title: "a) Cual es la proporción entre Hombres/Mujeres de toda la plantilla con vinculación laboral (no perfiles voluntarios)",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: ">60", label: "Más del 60% son mujeres", score: 0},
{ value: "<60", label: "Menos del 60% son mujeres", score: 0},
{ value: "60/40", label: "60% Hombres / 40% Mujeres", score: 1},
],
},
questionTotalPoints: 1,
next: "B1-02"
},
{
id: "B1-02",
type: "question",
section: {
id: "B1",
title: "2. Brecha de género y salarial",
description: "",
},
question: {
title: "b) A la hora de incorporar nuevos perfiles en la entidad, ¿existe un proceso de selección y reclutamiento basados en principios de transparencia e igualdad, público y difundido interna y externamente con perspectiva de género?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
{ value: "nsnc", label: "No sabe / No contesta", score: 0},
],
},
questionTotalPoints: 1,
next: "B1-03"
},
{
id: "B1-03",
type: "question",
section: {
id: "B1",
title: "2. Brecha de género y salarial",
description: "",
},
question: {
title: "c) ¿Existe algún puesto/ocupación en que solo hayan contratado hombres?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
{ value: "nsnc", label: "No sabe / No contesta", score: 0},
],
},
questionTotalPoints: 1,
next: "B1-04"
},
{
id: "B1-04",
type: "question",
section: {
id: "B1",
title: "2. Brecha de género y salarial",
description: "",
},
question: {
title: "d) ¿Existe algún puesto/ocupación en que solo hayan contratado mujeres?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
{ value: "nsnc", label: "No sabe / No contesta", score: 0},
],
},
questionTotalPoints: 1,
next: "B1-05"
},
{
id: "B1-05",
type: "question",
section: {
id: "B1",
title: "2. Brecha de género y salarial",
description: "",
},
question: {
title: "e) ¿Cuál es la retribución media salarial que predomina en vuestra entidad?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "igual", label: "La retribución media salarial mensual de los hombres es igual que la retribución media mensual de las mujeres", score: 1},
{ value: "menor-hombres", label: "La retribución media salarial mensual de los hombres es menor", score: 0},
{ value: "menor-mujeres", label: "La retribución media salarial mensual de las mujeres es menor", score: 0},
],
},
questionTotalPoints: 1,
next: "B1-06"
},
{
id: "B1-06",
type: "question",
section: {
id: "B1",
title: "2. Brecha de género y salarial",
description: "",
},
question: {
title: "f) ¿Cuál es la proporción de Hombres/Mujeres en cargos/puestos en mandos intermedios?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: ">60-H", label: "Los mando intermedios están mayoritariamente ocupados por hombres (+ del 60%)", score: 0},
{ value: ">60-M", label: "Los mando intermedios están mayoritariamente ocupados por mujeres (+ del 60%)", score: 0},
{ value: "50/50", label: "Los mando intermedios están ocupados de manera igualitaria (50%-50%)", score: 1},
],
},
questionTotalPoints: 1,
next: "B1-07"
},
{
id: "B1-07",
type: "question",
section: {
id: "B1",
title: "2. Brecha de género y salarial",
description: "",
},
question: {
title: "g) ¿Cuál es la proporción de Hombres/Mujeres en cargos directivos?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: ">60-H", label: "Los mando intermedios están mayoritariamente ocupados por hombres (+ del 60%)", score: 0},
{ value: ">60-M", label: "Los mando intermedios están mayoritariamente ocupados por mujeres (+ del 60%)", score: 0},
{ value: "50/50", label: "Los mando intermedios están ocupados de manera igualitaria (50%-50%)", score: 1},
],
},
questionTotalPoints: 1,
next: "F1-B1"
},
{
id: "F1-B1",
type: "feedback",
section: {
id: "B1",
title: "2. Brecha de género y salarial",
description: ""
},
title: "Resultados del bloque",
subtitle: "",
button: "Entendido · Continuar",
next: "B2-01"
},
{
id: "B2-01",
type: "question",
section: {
id: "B2",
title: "3. Formación y promoción",
description: "",
},
question: {
title: "a) El plan o acciones de formación se han comunicado de forma abierta con opciones flexibles de horario y perspectiva de género",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "B2-02"
},
{
id: "B2-02",
type: "question",
section: {
id: "B2",
title: "3. Formación y promoción",
description: "",
},
question: {
title: "b) Se han realizado acciones formativas en habilidades de liderazgo o específicas de dirección de forma transversal para incentivar la promoción igualitaria?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "B2-03"
},
{
id: "B2-03",
type: "question",
section: {
id: "B2",
title: "3. Formación y promoción",
description: "",
},
question: {
title: "c) ¿Existen alternativas flexibles de formación (online/presencial) transversal para toda la plantilla?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "B2-04"
},
{
id: "B2-04",
type: "question",
section: {
id: "B2",
title: "3. Formación y promoción",
description: "",
},
question: {
title: "d) ¿Existen procesos de evaluación por objetivos y/o méritos formulados transversal e igualitariamente con perspectiva de género?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "B2-05"
},
{
id: "B2-05",
type: "question",
section: {
id: "B2",
title: "3. Formación y promoción",
description: "",
},
question: {
title: "e) ¿Existen procesos de evaluación por objetivos y/o méritos formulados transversal e igualitariamente con perspectiva de género?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "F1-B2"
},
{
id: "F1-B2",
type: "feedback",
section: {
id: "B2",
title: "3. Formación y promoción",
description: ""
},
title: "Resultados del bloque",
subtitle: "",
button: "Entendido · Continuar",
next: "B3-01"
},
{
id: "B3-01",
type: "question",
section: {
id: "B301",
title: "4.1. Prevención y conciliación",
description: "",
},
question: {
title: "a) ¿Existen procesos para la gestión de teletrabajo/herramientas adecuadas (software/hardware) provistos por la organización?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "F1-B3-1"
},
{
id: "F1-B3-1",
type: "feedback",
section: {
id: "B301",
title: "4. Prevención y conciliación",
description: ""
},
title: "Resultados del subbloque",
subtitle: "",
button: "Entendido · Continuar",
next: "B3-02"
},
{
id: "B3-02",
type: "question",
section: {
id: "B302",
title: "4.2. Prevención y conciliación",
description: "",
},
question: {
title: "b) Existe la posibilidad de trabajo voluntario y/o flexibilidad laboral bajo políticas igualitarias",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "B3-03"
},
{
id: "B3-03",
type: "question",
section: {
id: "B302",
title: "4.2. Prevención y conciliación",
description: "",
},
question: {
title: "c) ¿Existe un programa/politicas de conocimiento público sobre plan de conciliación laboral?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "B3-04"
},
{
id: "B3-04",
type: "question",
section: {
id: "B302",
title: "4.2. Prevención y conciliación",
description: "",
},
question: {
title: "d) ¿Cuentan con beneficios/servicios sociales? (guarderías/beneficios/descuentos)",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "B3-05"
},
{
id: "B3-05",
type: "question",
section: {
id: "B302",
title: "4.2. Prevención y conciliación",
description: "",
},
question: {
title: "e) ¿Se realizan campañas de sensibilización/divulgación sobre la corresponsabilidad de tareas domésticas/conciliación , cuidado de personas dependientes?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "F1-B3-2"
},
{
id: "F1-B3-2",
type: "feedback",
section: {
id: "B302",
title: "4.2. Prevención y conciliación",
description: ""
},
title: "Resultados del subbloque",
subtitle: "",
button: "Entendido · Continuar",
next: "B3-06"
},
{
id: "B3-06",
type: "question",
section: {
id: "B303",
title: "4.3. Prevención y conciliación",
description: "",
},
question: {
title: "f) Se ha realizado alguna campaña o acción de divulgación de información sobre los derechos de las mujeres victimas de violencia de género? (charlas en colaboración con organizaciones expertas en violencia de género)",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "B3-07"
},
{
id: "B3-07",
type: "question",
section: {
id: "B303",
title: "4.3. Prevención y conciliación",
description: "",
},
question: {
title: "g) Acerca del protocolo de acoso (sexual o por sexo) y procedimientos específicos para la prevención del acoso, conocimiento de los procesos, causa de las denuncias y reclamaciones. Responde por favor las siguientes preguntas; ¿Existe código ético de conducta y/o protocolo de acoso con la descripción de procedimientos para lam prevención y actuación en caso de acoso (sexual o por sexo)?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "B3-08"
},
{
id: "B3-08",
type: "question",
section: {
id: "B303",
title: "4.3. Prevención y conciliación",
description: "",
},
question: {
title: "h) ¿Existen formularios o plantillas de acceso público de denuncia por acoso sexual o por sexo?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "B3-09"
},
{
id: "B3-09",
type: "question",
section: {
id: "B303",
title: "4.3. Prevención y conciliación",
description: "",
},
question: {
title: "i) El plan de PRL o normas de prevención laboral ¿Incluye(n) perspectiva de género para prevenir acoso sexual o por sexo? (disposición de los puestos de trabajo, acceso a servicios, herramientas y equipos de trabajo)",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "F1-B3-3"
},
{
id: "F1-B3-3",
type: "feedback",
section: {
id: "B303",
title: "4. Prevención y conciliación",
description: ""
},
title: "Resultados del subbloque",
subtitle: "",
button: "Entendido · Continuar",
next: "end"
},
{
id: "end",
type: "end",
title: "¡Aquí están los resultados!",
subtitle: "Este es el diagnóstico de tu entidad en igualdad de género. Puedes leer cada bloque o descargar el informe completo en PDF. Para interpretar los resultados y planificar próximos pasos, sigue el curso IGUALES del Aula Virtual.",
}
],
rules: {
B1: (score) => score >= 6 ? "Vuestra entidad está comprometida con la eliminación de las brechas de género y salariales en base a género, y está haciendo las cosas bien. Ha conseguido acercarse a la proporción igualitaria en la plantilla y que las remuneraciones se hayan equiparado o estén cercanas a ello." : "Os animamos a continuar trabajando para la eliminación de las brechas de género y a conseguir la igualdad tanto en la proporción de hombres y mujeres en plantilla como la equiparación salarial. Queda camino pero conseguir una entidad igualitaria impacta positivamente en la sociedad.",
B2: (score) => score >= 3 ? "La formación y la promoción interna de vuestra entidad tiene perspectiva de género y muestra un compromiso con la igualdad de oportunidades para toda la plantilla. Os animamos a continuar así y (si no tienen Plan Igualdad) ha plasmar todas vuestras políticas en un plan de igualdad- (si tienen Plan de Igualdad) a comunicar vuestras políticas igualitarias a toda vuestra cadena de valor, colaboradores y entidades afines." : "Es importante que las entidades apliquen la perspectiva de género en materia formativa y de promoción de la plantilla. El compromiso de la entidad en este área reportará grandes beneficios a medio y largo plazo, teniendo una plantilla que integra la igualdad desde el conocimiento y naturaliza unos patrones sostenibles. No hay tiempo que perder, trabajemos en ello!",
B301: (score) => score >= 1 ? "La gestión del teletrabajo es una potente herramienta para la conciliación por lo que, el hecho de dotar de herramientas a la entidad ya es un simbolo del compromiso con la igualdad de oportunidades, enhorabuena." : "Es interesante incorporar medidas en las que el teletrabajo ayude a la conciliación y a la igualdad, no te quedes atrás y explora esa vía para fortalecer tu organización y la igualdad",
B302: (score) => score >= 2 ? "La conciliación y el poner los cuidados en el centro hacen de una entidad un lugar más lugar más amable e igualitario y no solo a nivel personal, sino también a nivel colectivo reporta grandes beneficios como el aumento de productividad, reducción del absentismo, fijación del talento y sostenibilidad de la plantilla. Un reconocimiento al buen hacer de la entidad integrando estas medidas de igualdad." : "La incorporación de medidas de conciliación pueden reportar grandes beneficios a vuestra entidad por lo que os impulsamos a incluir pequeños, pero firmes, pasos en el cuidado de la plantilla y la conciliación para tener un entorno laboral positivo y que el bienestar del equipo repercuta en un espacio más productivo y colaborativo. ",
B303: (score) => score >= 2 ? "Los protocolos de acoso y todas las medidas para frenar actitudes discriminatorias por razón de sexo o de cualquier otra índole que habéis incorporado en la entidad son imprescindibles para hacer un entorno más igualitario y sin duda alguna os han ayudado a crear un ambiente de trabajo sano e igualitario impactando positivamente en todos los aspectos de la organización. Esto os conviente en referentes de igualdad en vuestro sector y esperamos permee a toda vuestra cadena de valor!" : "Es imprescindible que la organización haga un esfuerzo y trabaje en la igualdad creando e implantando medidas que eviten el acoso y la discriminación por razón de sexo o de cualquier otra índole. Además tomar medidas y formar al equipo para dar visibilidad a la violencia de género ayuda no solo a un entorno de trabajo consciente y saludable sino también a una sociedad igualitaria y justa. Todos y todas somos necesarios para lograr la igualdad real."
}
}

View File

@@ -1,5 +1,23 @@
<template>
<div>
<NuxtPage />
<div class="flex flex-col min-h-dvh">
<NavBar />
<main class="flex-1 flex flex-col">
<slot />
</main>
<FooterComp />
</div>
</template>
<script>
import NavBar from '~/components/NavBar.vue';
import FooterComp from '~/components/FooterComp.vue';
export default {
components: {
NavBar,
FooterComp
}
};
</script>

View File

@@ -18,7 +18,7 @@ export default defineNuxtConfig({
app: {
//TODO: Cambiar los metadatos
head: {
title: "Formulario",
title: "Bravioo",
htmlAttrs: {
lang: "es",
},

View File

@@ -19,7 +19,7 @@
</template>
<script>
import { surveyData } from "@/data/iguales.js" // Ajusta la ruta según la ubicación de tu archivo de datos
import { surveyData } from "@/data/bravioo.js" // Ajusta la ruta según la ubicación de tu archivo de datos
import FormSlice from "@/components/FormSlice.vue"
import SliceWelcome from "@/components/SliceWelcome.vue"
import SliceQuestion from "@/components/SliceQuestion.vue"
@@ -82,15 +82,15 @@ export default {
}
},
// mounted() {
// // Al montar, escuchar el evento de recarga/cierre
// window.addEventListener("beforeunload", this.clearStorageOnReload)
// },
mounted() {
// Al montar, escuchar el evento de recarga/cierre
window.addEventListener("beforeunload", this.clearStorageOnReload)
},
// beforeUnmount() {
// // Limpiar el listener al desmontar el componente
// window.removeEventListener("beforeunload", this.clearStorageOnReload)
// },
beforeUnmount() {
// Limpiar el listener al desmontar el componente
window.removeEventListener("beforeunload", this.clearStorageOnReload)
},
methods: {

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

BIN
public/LOGOBraviooB.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
public/erasmus.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

1
public/icono-bravioo.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 521.19 521.19"><defs><style>.cls-1{fill:#fff;}.cls-2{fill:#2bb6bd;}.cls-3{fill:#f49725;}.cls-4{fill:#ea503f;}</style></defs><g id="Capa_2" data-name="Capa 2"><g id="Capa_1-2" data-name="Capa 1"><rect class="cls-1" width="521.19" height="521.19" rx="87.08"/><path class="cls-2" d="M228.37,273.31q-10.41-23.65-10.4-52A132,132,0,0,1,224,181c-1.51-.64-2.93-1.37-4.48-2q-25.26-9.68-55.74-9.68-30.12,0-55.57,9.68a132.61,132.61,0,0,0-44.28,27.42,126.26,126.26,0,0,0-29.21,41.41q-10.39,23.67-10.4,52t10.4,52a126.26,126.26,0,0,0,29.21,41.41,132.29,132.29,0,0,0,44.28,27.42q25.46,9.69,55.57,9.68,30.47,0,55.74-9.68a132,132,0,0,0,43.92-27.25A126.93,126.93,0,0,0,292.65,352a118.75,118.75,0,0,0,4.52-11.92,131.24,131.24,0,0,1-39.59-25.39A126,126,0,0,1,228.37,273.31Zm-2.05,55.95A68.26,68.26,0,0,1,212,352a61.91,61.91,0,0,1-21.51,14.52,73.57,73.57,0,0,1-53.42,0A61.81,61.81,0,0,1,115.55,352a68.13,68.13,0,0,1-14.34-22.77,86.19,86.19,0,0,1,0-59,68.74,68.74,0,0,1,14.34-22.59,61.65,61.65,0,0,1,21.51-14.51,73.43,73.43,0,0,1,53.42,0A61.74,61.74,0,0,1,212,247.7a68.88,68.88,0,0,1,14.33,22.59,86.19,86.19,0,0,1,0,59Z"/><path class="cls-3" d="M486.3,169.34a129.53,129.53,0,0,0-73.13-68.83q-25.28-9.67-55.75-9.68-30.1,0-55.56,9.68a132.38,132.38,0,0,0-44.28,27.43,126,126,0,0,0-29.21,41.4A115.92,115.92,0,0,0,224,181a128.21,128.21,0,0,1,68.66,66.87q10.56,23.67,10.58,52a131.24,131.24,0,0,1-6.06,40.24c1.57.66,3.07,1.42,4.69,2q25.44,9.69,55.56,9.68,30.46,0,55.75-9.68a132.18,132.18,0,0,0,43.92-27.24,127.09,127.09,0,0,0,29.21-41.41q10.57-23.83,10.58-52.16T486.3,169.34ZM420,250.73a68.18,68.18,0,0,1-14.34,22.76A61.59,61.59,0,0,1,384.13,288a73.54,73.54,0,0,1-53.41,0,61.59,61.59,0,0,1-21.51-14.52,68.36,68.36,0,0,1-14.35-22.76,80.07,80.07,0,0,1-5.19-29.4,79.73,79.73,0,0,1,5.19-29.58,68.78,68.78,0,0,1,14.35-22.58,61.72,61.72,0,0,1,21.51-14.52,73.54,73.54,0,0,1,53.41,0,61.72,61.72,0,0,1,21.51,14.52A68.59,68.59,0,0,1,420,191.75a79.73,79.73,0,0,1,5.2,29.58A80.07,80.07,0,0,1,420,250.73Z"/><path class="cls-4" d="M292.65,247.88A128.21,128.21,0,0,0,224,181a132,132,0,0,0-6,40.32q0,28.32,10.4,52a126,126,0,0,0,29.21,41.41,131.24,131.24,0,0,0,39.59,25.39,131.24,131.24,0,0,0,6.06-40.24Q303.23,271.55,292.65,247.88Z"/></g></g></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
public/logo-bravio.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB