style: ajusta responsividade geral do projeto

This commit is contained in:
2026-05-28 19:04:17 -05:00
parent f5375c42ee
commit 98bdc96b6a
11 changed files with 198 additions and 176 deletions

View File

@@ -1,20 +1,20 @@
<template>
<div
class="relative min-h-[calc(100vh-66px)] overflow-hidden bg-[#f5f5f5] px-4 py-10 font-sans text-[#0c0a09] md:px-8 md:py-16">
class="relative min-h-[calc(100vh-66px)] overflow-x-hidden bg-[#f5f5f5] px-3 py-8 font-sans text-[#0c0a09] sm:px-4 md:px-6 md:py-12 xl:px-8 xl:py-16">
<div
class="pointer-events-none absolute left-1/2 top-8 h-[500px] w-[min(94vw,900px)] -translate-x-1/2 rounded-[48px] bg-[radial-gradient(circle_at_18%_28%,rgba(167,229,211,0.62),transparent_28%),radial-gradient(circle_at_76%_22%,rgba(244,197,168,0.5),transparent_30%),radial-gradient(circle_at_54%_82%,rgba(168,200,232,0.56),transparent_34%)] blur-2xl"
aria-hidden="true"></div>
<main class="relative mx-auto grid w-full max-w-[1180px] gap-8" aria-labelledby="home-title">
<section class="grid gap-6 lg:grid-cols-[minmax(0,1.45fr)_minmax(300px,0.55fr)] lg:items-stretch">
<div class="grid gap-6">
<main class="relative mx-auto grid w-full min-w-0 max-w-[1180px] gap-6 md:gap-8" aria-labelledby="home-title">
<section class="grid min-w-0 gap-6 2xl:grid-cols-[minmax(0,1.45fr)_minmax(300px,0.55fr)] 2xl:items-stretch">
<div class="grid min-w-0 gap-6">
<header>
<p
class="m-0 inline-flex rounded-full bg-[rgba(167,229,211,0.62)] px-3 py-1 text-xs font-semibold uppercase leading-[1.4] tracking-[0.96px] text-[#0c0a09]">
Dashboard
</p>
<h1 id="home-title"
class="my-5 max-w-[760px] break-words font-serif text-[40px] font-light leading-[1.05] tracking-[-1.2px] text-[#0c0a09] md:text-[60px] md:tracking-[-1.6px]">
class="my-5 max-w-[760px] break-words font-serif text-[34px] font-light leading-[1.05] tracking-[-1.2px] text-[#0c0a09] sm:text-[40px] md:text-[52px] xl:text-[60px] xl:tracking-[-1.6px]">
Olá, {{ userName }}.
</h1>
<p class="m-0 max-w-[620px] text-base font-normal leading-6 tracking-[0.16px] text-[#4e4e4e]">
@@ -23,9 +23,9 @@
</p>
</header>
<div class="grid gap-4 sm:grid-cols-2 xl:grid-cols-4">
<div class="grid min-w-0 gap-4 md:grid-cols-2 2xl:grid-cols-4">
<NuxtLink v-for="card in dashboardCards" :key="card.label" :to="card.to"
class="grid min-h-[156px] content-between rounded-2xl border border-[#e7e5e4] bg-white p-5 shadow-[0_4px_16px_rgba(0,0,0,0.04)] transition hover:border-[#d6d3d1] hover:shadow-[0_8px_24px_rgba(0,0,0,0.07)]">
class="grid min-h-[156px] min-w-0 content-between rounded-2xl border border-[#e7e5e4] bg-white p-4 shadow-[0_4px_16px_rgba(0,0,0,0.04)] transition hover:border-[#d6d3d1] hover:shadow-[0_8px_24px_rgba(0,0,0,0.07)] sm:p-5">
<div class="flex items-center justify-between gap-3">
<span class="inline-flex h-10 w-10 items-center justify-center rounded-xl" :class="card.accent">
<Icon :name="card.icon" class="text-xl text-[#0c0a09]" />
@@ -37,7 +37,8 @@
<p class="m-0 text-xs font-semibold uppercase leading-[1.4] tracking-[0.96px] text-[#777169]">
{{ card.label }}
</p>
<strong class="break-words text-[22px] font-medium leading-[1.18] tracking-[0.16px] text-[#0c0a09]">
<strong
class="min-w-0 break-words text-[22px] font-medium leading-[1.18] tracking-[0.16px] text-[#0c0a09]">
{{ card.value }}
</strong>
<p class="m-0 text-[13px] leading-[1.5] tracking-[0.13px] text-[#777169]">
@@ -84,9 +85,9 @@
</aside>
</section>
<section class="grid gap-8 lg:grid-cols-[minmax(0,1.35fr)_minmax(320px,0.65fr)]">
<section class="grid min-w-0 gap-6 md:gap-8 2xl:grid-cols-[minmax(0,1.35fr)_minmax(320px,0.65fr)]">
<article
class="grid gap-6 rounded-2xl border border-[#e7e5e4] bg-white p-6 shadow-[0_4px_16px_rgba(0,0,0,0.04)] md:p-8"
class="grid min-w-0 gap-6 rounded-2xl border border-[#e7e5e4] bg-white p-4 shadow-[0_4px_16px_rgba(0,0,0,0.04)] sm:p-5 md:p-6 xl:p-8"
aria-labelledby="weekly-ranking-title">
<div class="flex flex-col gap-4 sm:flex-row sm:items-end sm:justify-between">
<div>
@@ -101,8 +102,8 @@
</div>
<NuxtLink to="/ranking-jogos"
class="inline-flex h-10 w-fit items-center justify-center gap-2 rounded-full border border-[#d6d3d1] bg-transparent px-5 text-[15px] font-medium leading-none text-[#0c0a09] transition hover:border-[#0c0a09]">
Ver ranking completo
class="inline-flex min-h-10 w-full min-w-0 items-center justify-center gap-2 rounded-full border border-[#d6d3d1] bg-transparent px-5 py-2 text-center text-[15px] font-medium leading-[1.2] text-[#0c0a09] transition hover:border-[#0c0a09] sm:w-fit">
<span class="min-w-0 break-words">Ver ranking completo</span>
<Icon name="mdi:arrow-right" class="text-base" />
</NuxtLink>
</div>
@@ -119,25 +120,28 @@
<ol v-else-if="ranking.items.length" class="grid overflow-hidden rounded-xl border border-[#e7e5e4]">
<li v-for="(game, index) in ranking.items.slice(0, 5)" :key="game.id ?? game.name"
class="grid gap-3 border-b border-[#e7e5e4] bg-white p-4 last:border-b-0 sm:grid-cols-[56px_minmax(0,1fr)_minmax(120px,auto)_minmax(120px,auto)] sm:items-center">
class="flex min-w-0 flex-col gap-3 border-b border-[#e7e5e4] bg-white p-4 last:border-b-0 sm:flex-row sm:items-center">
<span
class="inline-flex h-9 w-9 items-center justify-center rounded-full bg-[#292524] text-[15px] font-medium leading-none text-white">
class="inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-[#292524] text-[15px] font-medium leading-none text-white">
{{ index + 1 }}
</span>
<div class="min-w-0">
<strong class="block break-words text-base font-medium leading-6 tracking-[0.16px] text-[#0c0a09]">
<div class="min-w-0 flex-1">
<strong
class="block min-w-0 break-words text-base font-medium leading-6 tracking-[0.16px] text-[#0c0a09]">
{{ game.name }}
</strong>
<span class="text-[13px] leading-[1.5] tracking-[0.13px] text-[#777169]">
{{ game.platform ?? 'Plataforma não informada' }}
</span>
</div>
<span class="text-[15px] leading-[1.47] tracking-[0.15px] text-[#292524]">
{{ formatNumber(game.active_players) }} jogadores
</span>
<span class="text-[15px] leading-[1.47] tracking-[0.15px] text-[#292524]">
{{ formatNumber(game.weekly_points) }} pts
</span>
<div class="flex min-w-0 flex-wrap gap-x-4 gap-y-1 sm:justify-end">
<span class="whitespace-nowrap text-[15px] leading-[1.47] tracking-[0.15px] text-[#292524]">
{{ formatNumber(game.active_players) }} jogadores
</span>
<span class="whitespace-nowrap text-[15px] leading-[1.47] tracking-[0.15px] text-[#292524]">
{{ formatNumber(game.weekly_points) }} pts
</span>
</div>
</li>
</ol>
@@ -147,9 +151,9 @@
</div>
</article>
<aside class="grid gap-4">
<aside class="grid min-w-0 gap-4">
<article
class="grid gap-4 rounded-2xl border border-[#e7e5e4] bg-white p-6 shadow-[0_4px_16px_rgba(0,0,0,0.04)]"
class="grid min-w-0 gap-4 rounded-2xl border border-[#e7e5e4] bg-white p-4 shadow-[0_4px_16px_rgba(0,0,0,0.04)] sm:p-5 md:p-6"
aria-labelledby="profile-gamer-summary">
<div class="flex items-start justify-between gap-3">
<div>
@@ -184,13 +188,13 @@
</div>
<NuxtLink to="/perfil-gamer"
class="inline-flex h-10 items-center justify-center rounded-full border border-[#d6d3d1] bg-transparent px-5 text-[15px] font-medium leading-none text-[#0c0a09] transition hover:border-[#0c0a09]">
class="inline-flex min-h-10 min-w-0 items-center justify-center rounded-full border border-[#d6d3d1] bg-transparent px-5 py-2 text-center text-[15px] font-medium leading-[1.2] text-[#0c0a09] transition hover:border-[#0c0a09]">
Abrir perfil gamer
</NuxtLink>
</article>
<article
class="grid gap-4 rounded-2xl border border-[#e7e5e4] bg-white p-6 shadow-[0_4px_16px_rgba(0,0,0,0.04)]"
class="grid min-w-0 gap-4 rounded-2xl border border-[#e7e5e4] bg-white p-4 shadow-[0_4px_16px_rgba(0,0,0,0.04)] sm:p-5 md:p-6"
aria-labelledby="shortcuts-title">
<div>
<span
@@ -205,21 +209,21 @@
<div class="grid gap-2">
<NuxtLink v-for="shortcut in shortcuts" :key="shortcut.to" :to="shortcut.to"
class="flex min-h-11 items-center justify-between gap-3 rounded-xl border border-[#e7e5e4] px-4 text-[15px] font-medium leading-[1.47] tracking-[0.15px] text-[#0c0a09] transition hover:border-[#0c0a09]">
<span class="inline-flex items-center gap-2">
<Icon :name="shortcut.icon" class="text-base text-[#777169]" />
class="flex min-h-11 min-w-0 items-center justify-between gap-3 rounded-xl border border-[#e7e5e4] px-4 text-[15px] font-medium leading-[1.47] tracking-[0.15px] text-[#0c0a09] transition hover:border-[#0c0a09]">
<span class="inline-flex min-w-0 items-center gap-2">
<Icon :name="shortcut.icon" class="shrink-0 text-base text-[#777169]" />
{{ shortcut.label }}
</span>
<Icon name="mdi:arrow-right" class="text-base text-[#777169]" />
<Icon name="mdi:arrow-right" class="shrink-0 text-base text-[#777169]" />
</NuxtLink>
</div>
</article>
</aside>
</section>
<section class="grid gap-4 md:grid-cols-3" aria-label="Prévia dos serviços">
<section class="grid min-w-0 gap-4 xl:grid-cols-3" aria-label="Prévia dos serviços">
<article v-for="service in servicePreviews" :key="service.title"
class="grid gap-4 rounded-2xl border border-[#e7e5e4] bg-white p-6 shadow-[0_4px_16px_rgba(0,0,0,0.04)]">
class="grid min-w-0 gap-4 rounded-2xl border border-[#e7e5e4] bg-white p-4 shadow-[0_4px_16px_rgba(0,0,0,0.04)] sm:p-5 md:p-6">
<div class="flex items-start justify-between gap-3">
<div>
<span