- Nuova Home Page RISO Moderna! Passo 1 - la struttura

This commit is contained in:
Surya Paolo
2025-11-29 21:14:26 +01:00
parent 2abdda3b44
commit 8b6a636a96
17 changed files with 3865 additions and 82 deletions

View File

@@ -1,42 +1,188 @@
.text-cls{
font-weight: bold;
// Spacing ridotto
$s-xs: 4px;
$s-sm: 6px;
$s-md: 8px;
// Wrapper moderno
.modern-btn-wrapper {
padding: $s-xs;
&.modern-btn-col-3 {
flex: 0 0 33.333%;
max-width: 33.333%;
@media (max-width: 599px) {
flex: 0 0 33.333%;
max-width: 33.333%;
}
@media (min-width: 600px) and (max-width: 1023px) {
flex: 0 0 33.333%;
max-width: 33.333%;
}
@media (min-width: 1024px) and (max-width: 1439px) {
flex: 0 0 25%;
max-width: 25%;
}
@media (min-width: 1440px) {
flex: 0 0 16.666%;
max-width: 16.666%;
}
}
&.modern-btn-col-2 {
flex: 0 0 50%;
max-width: 50%;
@media (min-width: 600px) and (max-width: 1023px) {
flex: 0 0 50%;
max-width: 50%;
}
@media (min-width: 1024px) and (max-width: 1439px) {
flex: 0 0 33.333%;
max-width: 33.333%;
}
@media (min-width: 1440px) {
flex: 0 0 25%;
max-width: 25%;
}
}
}
.my-text {
font-size: 1rem;
font-weight: bold;
line-height: 1.5rem;
letter-spacing: 0.0125em;
}
.my-text_3 {
font-size: 1rem;
font-weight: bold;
line-height: 1.5rem;
letter-spacing: 0.0125em;
}
.my-text-small {
font-size: 1rem;
line-height: 1rem;
letter-spacing: 0.0125em;
}
.mybox_3 {
min-width: 100px;
min-height: 100px;
// Bottoni moderni
.modern-bigbtn {
width: 100%;
min-height: 90px;
min-width: 90px;
padding: $s-sm;
flex-direction: column;
gap: $s-xs;
transition: all 0.3s ease;
position: relative;
overflow: hidden;
&::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
transition: left 0.5s ease;
}
&:hover::before {
left: 100%;
}
&:hover {
transform: translateY(-2px);
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
}
.btn-icon {
margin: $s-xs;
font-size: 2rem;
}
.btn-icon-large {
margin: $s-xs;
}
.btn-label,
.btn-label-large {
margin: $s-xs;
font-size: 0.95rem;
font-weight: 700;
line-height: 1.3;
letter-spacing: 0.01em;
text-align: center;
white-space: normal;
word-break: break-word;
}
.btn-label-large {
font-size: 1.1rem;
}
}
.mybox {
min-width: 112px;
min-height: 112px;
.modern-smallbtn {
width: 100%;
min-height: 70px;
min-width: 80px;
padding: $s-sm;
flex-direction: column;
gap: $s-xs;
transition: all 0.3s ease;
position: relative;
overflow: hidden;
&::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
transition: left 0.5s ease;
}
&:hover::before {
left: 100%;
}
&:hover {
transform: translateY(-2px);
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
}
.btn-icon-small {
margin: $s-xs;
}
.btn-label-small {
margin: $s-xs;
font-size: 0.85rem;
font-weight: 600;
line-height: 1.2;
letter-spacing: 0.01em;
text-align: center;
white-space: normal;
word-break: break-word;
}
}
.mybox_small {
min-width: 110px;
width: 100%;
}
// Responsive adjustments
@media (max-width: 599px) {
.modern-bigbtn {
min-height: 85px;
min-width: 85px;
.btn-icon {
font-size: 1.8rem;
}
.btn-label {
font-size: 0.85rem;
}
.btn-label-large {
font-size: 1rem;
}
}
.modern-smallbtn {
min-height: 65px;
min-width: 70px;
.btn-label-small {
font-size: 0.75rem;
}
}
}

View File

@@ -1,27 +1,63 @@
<template>
<div v-if="numcol === 3" class="col-xs-4 col-sm-4 col-md-3 col-lg-2">
<div class="q-ma-sm">
<q-btn v-if="!small" :flat="flat" class="mybox_3" :color="color" rounded push :to="tools.updateLink(to)" v-bind="$attrs" :style="tools.getbackgroundGradient(color, 180)">
<q-icon class="q-ma-sm" :name="icon"/>
<div class="q-ma-sm my-text_3 text-cls no-wrap"><span v-html="label"></span></div>
</q-btn>
<q-btn v-if="small" :flat="flat" class="mybox_small" :color="color" rounded push :to="tools.updateLink(to)" v-bind="$attrs" :style="tools.getbackgroundGradient(color, 180)">
<q-icon class="q-ma-sm" :name="icon" size="sm"/>
<div class="q-ma-xs my-text-small text-cls no-wrap"><span v-html="label"></span></div>
</q-btn>
</div>
<div v-if="numcol === 3" class="modern-btn-wrapper modern-btn-col-3">
<q-btn
v-if="!small"
:flat="flat"
class="modern-bigbtn"
:color="color"
rounded
push
:to="tools.updateLink(to)"
v-bind="$attrs"
:style="tools.getbackgroundGradient(color, 180)"
>
<q-icon class="btn-icon" :name="icon"/>
<div class="btn-label"><span v-html="label"></span></div>
</q-btn>
<q-btn
v-if="small"
:flat="flat"
class="modern-smallbtn"
:color="color"
rounded
push
:to="tools.updateLink(to)"
v-bind="$attrs"
:style="tools.getbackgroundGradient(color, 180)"
>
<q-icon class="btn-icon-small" :name="icon" size="sm"/>
<div class="btn-label-small"><span v-html="label"></span></div>
</q-btn>
</div>
<div v-else class="col-xs-6 col-sm-6 col-md-4 col-lg-3">
<div class="q-ma-sm">
<q-btn v-if="!small" :flat="flat" class="mybox" :color="color" rounded push :to="tools.updateLink(to)" v-bind="$attrs" :style="tools.getbackgroundGradient(color, 0)">
<q-icon class="q-ma-sm" size="3rem" :name="icon"/>
<div class="q-ma-sm text-h5-diff text-cls no-wrap"><span v-html="label"></span></div>
</q-btn>
<q-btn v-if="small" :flat="flat" class="mybox_small" :color="color" rounded push :to="tools.updateLink(to)" v-bind="$attrs" :style="tools.getbackgroundGradient(color, 0)">
<q-icon class="q-ma-sm" :name="icon" size="sm"/>
<div class="q-ma-xs my-text-small text-cls no-wrap"><span v-html="label"></span></div>
</q-btn>
</div>
<div v-else class="modern-btn-wrapper modern-btn-col-2">
<q-btn
v-if="!small"
:flat="flat"
class="modern-bigbtn"
:color="color"
rounded
push
:to="tools.updateLink(to)"
v-bind="$attrs"
:style="tools.getbackgroundGradient(color, 0)"
>
<q-icon class="btn-icon-large" size="3rem" :name="icon"/>
<div class="btn-label-large"><span v-html="label"></span></div>
</q-btn>
<q-btn
v-if="small"
:flat="flat"
class="modern-smallbtn"
:color="color"
rounded
push
:to="tools.updateLink(to)"
v-bind="$attrs"
:style="tools.getbackgroundGradient(color, 0)"
>
<q-icon class="btn-icon-small" :name="icon" size="sm"/>
<div class="btn-label-small"><span v-html="label"></span></div>
</q-btn>
</div>
</template>