Initial commit — Diabetix V2

Application Laravel 12 + Inertia + Vue 3 + Tailwind.
Fonctionnalités : dashboard glycémique, saisie de mesures, courbe SVG,
statistiques (jour/semaine/mois/trimestre), défis & badges, chat coach IA
(Gemini), paramètres profil avec palette de couleurs, pages auth redessinées,
emails transactionnels via Resend avec thème Diabetix.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
jeremy bayse
2026-04-29 07:01:41 +02:00
commit 26c6d8031c
150 changed files with 19863 additions and 0 deletions

View File

@@ -0,0 +1,272 @@
/* Diabetix email theme — palette mint */
body,
body *:not(html):not(style):not(br):not(tr):not(code) {
box-sizing: border-box;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
position: relative;
}
body {
-webkit-text-size-adjust: none;
background-color: #eeece8;
color: #2a3533;
height: 100%;
line-height: 1.5;
margin: 0;
padding: 0;
width: 100% !important;
}
p, ul, ol, blockquote {
line-height: 1.5;
text-align: start;
}
a { color: #7bbfb5; }
a img { border: none; }
h1 {
color: #2a3533;
font-size: 22px;
font-weight: 700;
margin-top: 0;
text-align: start;
}
h2 {
color: #2a3533;
font-size: 17px;
font-weight: 600;
margin-top: 0;
}
h3 {
color: #2a3533;
font-size: 14px;
font-weight: 600;
margin-top: 0;
}
p {
font-size: 15px;
line-height: 1.6;
margin-top: 0;
color: #2a3533;
}
p.sub { font-size: 12px; color: #7a9c97; }
img { max-width: 100%; }
/* Layout */
.wrapper {
-premailer-cellpadding: 0;
-premailer-cellspacing: 0;
-premailer-width: 100%;
background-color: #eeece8;
margin: 0;
padding: 0;
width: 100%;
}
.content {
-premailer-cellpadding: 0;
-premailer-cellspacing: 0;
-premailer-width: 100%;
margin: 0;
padding: 0;
width: 100%;
}
/* Header */
.header {
padding: 32px 0 20px;
text-align: center;
}
.header a {
color: #2a3533;
font-size: 20px;
font-weight: 700;
text-decoration: none;
}
/* Body */
.body {
-premailer-cellpadding: 0;
-premailer-cellspacing: 0;
-premailer-width: 100%;
background-color: #eeece8;
border-bottom: 1px solid #eeece8;
border-top: 1px solid #eeece8;
margin: 0;
padding: 0;
width: 100%;
}
.inner-body {
-premailer-cellpadding: 0;
-premailer-cellspacing: 0;
-premailer-width: 570px;
background-color: #ffffff;
border-color: #ddeae7;
border-radius: 20px;
border-width: 1px;
box-shadow: 0 4px 24px rgba(42, 53, 51, 0.08);
margin: 0 auto;
padding: 0;
width: 570px;
}
.inner-body a { word-break: break-all; }
/* Subcopy */
.subcopy {
border-top: 1px solid #ddeae7;
margin-top: 25px;
padding-top: 25px;
}
.subcopy p {
font-size: 13px;
color: #7a9c97;
}
/* Footer */
.footer {
-premailer-cellpadding: 0;
-premailer-cellspacing: 0;
-premailer-width: 570px;
margin: 0 auto;
padding: 0;
text-align: center;
width: 570px;
}
.footer p {
color: #7a9c97;
font-size: 12px;
text-align: center;
}
.footer a {
color: #7a9c97;
text-decoration: underline;
}
/* Tables */
.table table {
-premailer-cellpadding: 0;
-premailer-cellspacing: 0;
-premailer-width: 100%;
margin: 30px auto;
width: 100%;
}
.table th {
border-bottom: 1px solid #ddeae7;
margin: 0;
padding-bottom: 8px;
color: #7a9c97;
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.6px;
}
.table td {
color: #2a3533;
font-size: 15px;
line-height: 18px;
margin: 0;
padding: 10px 0;
border-bottom: 1px solid #f0ede6;
}
.content-cell {
max-width: 100vw;
padding: 36px 40px;
}
/* Buttons */
.action {
-premailer-cellpadding: 0;
-premailer-cellspacing: 0;
-premailer-width: 100%;
margin: 30px auto;
padding: 0;
text-align: center;
width: 100%;
float: unset;
}
.button {
-webkit-text-size-adjust: none;
border-radius: 14px;
color: #fff;
display: inline-block;
overflow: hidden;
text-decoration: none;
font-weight: 600;
}
.button-blue,
.button-primary {
background-color: #7bbfb5;
border-bottom: 10px solid #7bbfb5;
border-left: 22px solid #7bbfb5;
border-right: 22px solid #7bbfb5;
border-top: 10px solid #7bbfb5;
}
.button-green,
.button-success {
background-color: #5ca89d;
border-bottom: 10px solid #5ca89d;
border-left: 22px solid #5ca89d;
border-right: 22px solid #5ca89d;
border-top: 10px solid #5ca89d;
}
.button-red,
.button-error {
background-color: #d4826a;
border-bottom: 10px solid #d4826a;
border-left: 22px solid #d4826a;
border-right: 22px solid #d4826a;
border-top: 10px solid #d4826a;
}
/* Panels */
.panel {
border-left: #7bbfb5 solid 4px;
margin: 21px 0;
border-radius: 0 8px 8px 0;
}
.panel-content {
background-color: #d4ede8;
color: #2a3533;
padding: 16px 20px;
border-radius: 0 8px 8px 0;
}
.panel-content p { color: #2a3533; }
.panel-item { padding: 0; }
.panel-item p:last-of-type {
margin-bottom: 0;
padding-bottom: 0;
}
/* Utilities */
.break-all { word-break: break-all; }