This commit is contained in:
2026-03-26 13:12:14 +01:00
parent 101820581e
commit 6ddb6a3ffd
6 changed files with 221 additions and 167 deletions
+31 -1
View File
@@ -478,7 +478,37 @@ input::-webkit-inner-spin-button {
/* On neutralise la classe blur-effect pour qu'elle ne fasse plus rien */ /* On neutralise la classe blur-effect pour qu'elle ne fasse plus rien */
.blur-effect { .blur-effect {
filter: none !important; filter: blur(5px);
}
/* La classe pour le slot du joueur couché */
.player-slot.porno-japonnais {
position: relative;
opacity: 0.85;
transition: all 0.3s ease;
overflow: hidden;
}
/* L'overlay qui crée l'effet de pixels par-dessus le contenu */
.player-slot.porno-japonnais::before {
content: "";
position: absolute;
inset: 0;
z-index: 10;
border-radius: inherit;
/* On utilise des gradients qui couvrent 100% de la surface du pixel */
/* On enlève le "at 2px 2px" pour supprimer les bordures nettes */
background-image:
conic-gradient(rgba(0,0,0,0.03) 90deg, transparent 0),
conic-gradient(rgba(255,255,255,0.06) 90deg, transparent 0);
/* TAILLE DES PIXELS : Ici 25px pour du gros pâté de couleur */
background-size: 25px 25px;
background-position: 0 0, 12.5px 12.5px; /* Décalage pour briser la linéarité */
/* On garde ton combo de filtres qui marchait bien */
backdrop-filter: contrast(130%) brightness(95%) blur(6px);
} }
/* Si tu veux quand même que les joueurs couchés soient différents /* Si tu veux quand même que les joueurs couchés soient différents
+143 -151
View File
@@ -1,6 +1,7 @@
/* index.css - Version Poker PAF Harmonisée & Aérée */ /* --- VARIABLES GLOBALES --- */
:root { :root {
--table-green: radial-gradient(circle, #277d46 0%, #1a5e33 100%); --table-green: radial-gradient(circle, #277d46 0%, #1a5e33 100%);
--table-dark: radial-gradient(circle, #1a1a1a 0%, #0a0a0a 100%); /* Couleur pour la table sombre */
--poker-border: #2c1b18; --poker-border: #2c1b18;
--gold: #d4af37; --gold: #d4af37;
--gold-light: #f9e27d; --gold-light: #f9e27d;
@@ -9,70 +10,106 @@
--wood-dark: #1a0f0d; --wood-dark: #1a0f0d;
} }
/* --- STRUCTURE DE LA PAGE --- */
body { body {
background-color: var(--dark-bg); background-color: var(--dark-bg);
background-image: radial-gradient(circle at center, #1a1a1a 0%, #050505 100%); background-image: radial-gradient(circle at center, #1a1a1a 0%, #050505 100%);
color: var(--white); color: var(--white);
font-family: 'Segoe UI', Roboto, sans-serif; font-family: 'Segoe UI', Roboto, sans-serif;
margin: 0;
min-height: 100vh;
display: flex;
justify-content: center;
}
.main-wrapper {
display: flex;
flex-direction: column;
align-items: center;
padding: 40px 20px;
width: 100%;
max-width: 1000px; /* Réduit pour garder une forme de table sympa */
}
/* --- STYLE COMMUN DES TABLES --- */
.poker-table {
position: relative;
padding: 30px;
border-radius: 80px;
border: 15px solid var(--poker-border);
box-shadow: 0 25px 50px rgba(0,0,0,0.9), inset 0 0 40px rgba(0,0,0,0.6);
width: 100%;
outline: 2px solid #3d2b27;
margin-bottom: 40px;
box-sizing: border-box;
}
.poker-table::before {
content: '';
position: absolute;
top: 12px; left: 12px; right: 12px; bottom: 12px;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 65px;
pointer-events: none;
}
.table-inner {
position: relative;
z-index: 2;
text-align: center;
}
/* --- SPECIFICITÉS TABLE HEADER (SOMBRE) --- */
.table-header {
background: var(--table-dark);
max-width: 800px;
border-color: #1a1a1a; /* Bordure plus noire pour le header */
}
.table-header h1 {
color: var(--gold);
text-transform: uppercase;
font-size: 1.2rem;
margin: 0 0 10px 0;
letter-spacing: 2px;
}
/* --- SPECIFICITÉS TABLE MAIN (VERTE) --- */
.table-main {
background: var(--table-green);
}
.tables-hall {
width: 100%;
display: flex;
justify-content: center;
}
/* --- CENTRAGE DU BOUTON --- */
.button-center-wrapper {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
min-height: 100vh; padding: 20px 0 40px 0; /* Espace le bouton du titre de la liste */
margin: 0;
} }
/* --- LE CONTENEUR (Exactement comme la table de l'image 2) --- */ /* --- LOGO --- */
.welcome-container { .logo-paf {
background: var(--table-green); width: 220px;
padding: 40px; height: auto;
border-radius: 40px; /* Moins ovale, plus "carré arrondi" */ filter: drop-shadow(0 0 15px rgba(180, 50, 255, 0.6));
border: 15px solid var(--poker-border); /* Bordure épaisse cuir/bois */ transition: transform 0.3s ease;
box-shadow: 0 25px 50px rgba(0,0,0,0.9), inset 0 0 40px rgba(0,0,0,0.6);
text-align: center;
width: 90%;
max-width: 600px;
position: relative;
/* Petit liseré de finition */
outline: 2px solid #3d2b27;
} }
/* --- LE LISERÉ BLANC (AJOUTÉ ICI) --- */ .logo-paf:hover {
.welcome-container::before { transform: scale(1.05);
content: '';
position: absolute;
/* On le décale de 10px vers l'intérieur par rapport à la bordure marron */
top: 10px;
left: 10px;
right: 10px;
bottom: 10px;
border: 1px solid rgba(255, 255, 255, 0.15); /* Blanc très subtil et transparent */
border-radius: 30px; /* Un peu moins que le parent pour suivre la courbe */
pointer-events: none; /* Pour ne pas gêner les clics sur les boutons */
z-index: 1;
} }
h1 { /* --- BOUTON CRÉER --- */
color: var(--gold); .btn-main-create {
text-transform: uppercase;
font-size: 2.5rem;
margin-bottom: 30px;
letter-spacing: 2px;
text-shadow: 3px 3px 0px rgba(0,0,0,0.8);
}
h2 {
font-size: 1.1rem;
color: rgba(255,255,255,0.6);
text-transform: uppercase;
margin-top: 25px;
letter-spacing: 1px;
}
/* --- BOUTON PRINCIPAL CRÉER --- */
.welcome-container > button {
background: linear-gradient(135deg, var(--gold) 0%, var(--gold-light) 50%, var(--gold) 100%); background: linear-gradient(135deg, var(--gold) 0%, var(--gold-light) 50%, var(--gold) 100%);
color: var(--wood-dark); color: var(--wood-dark);
padding: 18px 40px; padding: 18px 45px;
font-weight: 900; font-weight: 900;
font-size: 1.2rem; font-size: 1.2rem;
border-radius: 50px; border-radius: 50px;
@@ -81,159 +118,114 @@ h2 {
transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
box-shadow: 0 8px 0px #927521, 0 15px 20px rgba(0,0,0,0.4); box-shadow: 0 8px 0px #927521, 0 15px 20px rgba(0,0,0,0.4);
text-transform: uppercase; text-transform: uppercase;
margin-bottom: 10px;
} }
.welcome-container > button:hover { .btn-main-create:hover {
transform: translateY(-2px); transform: translateY(-2px);
box-shadow: 0 10px 0px #927521, 0 20px 25px rgba(0,0,0,0.5); box-shadow: 0 10px 0px #927521, 0 20px 25px rgba(0,0,0,0.5);
} }
/* --- LISTE DES PARTIES --- */ /* --- TITRES ET LISTES --- */
#games_list ul { .table-main h2 {
list-style: none; font-size: 1.1rem;
padding: 0; color: rgba(255,255,255,0.7);
margin: 25px 0; text-transform: uppercase;
}
#games_list li {
margin-bottom: 20px; margin-bottom: 20px;
} }
/* --- L'ACCORDÉON (Design des slots joueurs) --- */ #games_list ul {
.mon-accordeon { list-style: none;
background-color: rgba(0,0,0,0.4); /* Fond sombre comme les slots */ padding: 0;
border-radius: 15px; max-width: 500px;
border: 2px solid #333; margin: 0 auto;
overflow: hidden;
text-align: left;
transition: border-color 0.3s;
} }
details[open].mon-accordeon { .mon-accordeon {
border-color: var(--gold); background-color: rgba(0,0,0,0.5);
border-radius: 15px;
border: 2px solid #333;
margin-bottom: 12px;
text-align: left;
} }
summary { summary {
padding: 18px 25px; padding: 12px 20px;
color: var(--gold); color: var(--gold);
font-weight: bold; font-weight: bold;
cursor: pointer; cursor: pointer;
list-style: none;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
outline: none; outline: none;
} }
summary::-webkit-details-marker { display: none; }
summary::after {
content: '♣';
font-size: 1.2rem;
transition: transform 0.4s ease;
}
details[open] summary::after {
transform: rotate(180deg);
color: #4dbf4d;
}
/* --- CONTENU DÉPLOYÉ (Aération améliorée) --- */
.container-parent { .container-parent {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
gap: 30px; /* Plus d'espace entre les boutons et les noms */ background: rgba(0,0,0,0.2);
padding: 0 25px;
max-height: 0; max-height: 0;
opacity: 0; opacity: 0;
overflow: hidden; overflow: hidden;
transition: max-height 0.4s ease, opacity 0.3s ease, padding 0.4s ease; transition: all 0.4s ease;
background: rgba(0,0,0,0.2);
} }
details[open] .container-parent { details[open] .container-parent {
max-height: 600px; max-height: 500px;
opacity: 1; opacity: 1;
padding: 25px; /* On redonne du souffle ici */ padding: 20px;
} }
/* Zone des noms (Left) */ /* --- ZONES INTERNES ACCORDÉON --- */
.left {
flex: 1.2;
border-left: 2px solid rgba(212, 175, 55, 0.2);
padding-left: 20px;
}
.left p { .left { flex: 1.2; border-left: 2px solid rgba(212, 175, 55, 0.2); padding-left: 15px; }
margin: 5px 0;
font-size: 0.95rem; .left p { margin: 3px 0; font-size: 0.9rem; color: #eee; }
color: #eee;
font-weight: 500;
}
.right { flex: 1; display: flex; flex-direction: column; }
.right p { font-size: 0.8rem; color: var(--gold); margin-bottom: 10px; }
/* Zone des boutons (Right) */
.right {
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
}
.right p {
font-size: 0.85rem;
color: var(--gold);
margin-bottom: 15px;
text-transform: uppercase;
letter-spacing: 1px;
}
/* Boutons Rejoindre */
.btn-join-list, .btn-admin-join-list { .btn-join-list, .btn-admin-join-list {
width: 100%; width: 100%;
margin-bottom: 10px;
padding: 12px; margin-bottom: 8px;
border-radius: 8px;
padding: 10px;
border-radius: 6px;
border: 1px solid var(--gold); border: 1px solid var(--gold);
background: transparent; background: transparent;
color: var(--gold); color: var(--gold);
cursor: pointer;
font-weight: bold; font-weight: bold;
cursor: pointer;
text-transform: uppercase; text-transform: uppercase;
font-size: 0.75rem;
font-size: 0.7rem;
transition: 0.2s; transition: 0.2s;
} }
.btn-join-list:hover {
background: var(--gold);
color: black;
}
.btn-admin-join-list {
border-color: rgba(255,255,255,0.3);
color: rgba(255,255,255,0.5);
}
.btn-admin-join-list:hover { .btn-join-list:hover { background: var(--gold); color: black; }
border-color: white;
color: white;
background: rgba(255,255,255,0.1);
}
/* --- RESPONSIVE MOBILE --- */ .btn-admin-join-list { border-color: rgba(255,255,255,0.3); color: rgba(255,255,255,0.5); }
/* --- RESPONSIVE --- */
@media (max-width: 600px) { @media (max-width: 600px) {
.container-parent { .poker-table { border-radius: 40px; padding: 15px; border-width: 10px; }
flex-direction: column-reverse; /* Boutons en haut ou en bas selon préférence */ .logo-paf { width: 160px; }
gap: 20px; .btn-main-create { padding: 12px 25px; font-size: 1rem; }
}
.welcome-container {
padding: 20px;
border-width: 10px;
}
.left {
border-left: none;
border-top: 1px solid rgba(212, 175, 55, 0.2);
padding-left: 0;
padding-top: 15px;
}
} }
+11 -1
View File
@@ -243,7 +243,7 @@ async function setupPlayers() {
newHtml += ` newHtml += `
<div class="player-slot slot-${index} <div class="player-slot slot-${index}
${player.is_folded ? ' blur-effect' : ''} ${player.is_folded ? toPornoJaponnaisOrNotToPornoJaponnais() : ''}
${player.money <= 0 ? ' All-in-Blur' : ''} ${player.money <= 0 ? ' All-in-Blur' : ''}
${isMe ? 'is-me' : ''}" ${isMe ? 'is-me' : ''}"
data-id="${player.id}"> data-id="${player.id}">
@@ -539,3 +539,13 @@ function startConfetti() {
setTimeout(() => confetti.remove(), 5000); setTimeout(() => confetti.remove(), 5000);
} }
} }
function toPornoJaponnaisOrNotToPornoJaponnais(){
// let a = Math.random()
let a = 1
if (a <= 0.25){
return ' porno-japonnais'
} else {
return ' blur-effect'
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

+33 -14
View File
@@ -1,21 +1,40 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset='utf-8'> <meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge'> <meta http-equiv='X-UA-Compatible' content='IE=edge'>
<title>Accueil -PokerPaf</title> <title>Accueil - PokerPaf</title>
<meta name='viewport' content='width=device-width, initial-scale=1'> <meta name='viewport' content='width=device-width, initial-scale=1'>
<link rel='stylesheet' type='text/css' media='screen' href='css/index.css'> <link rel='stylesheet' type='text/css' media='screen' href='css/index.css'>
</head> <link rel="icon" type="image/x-icon" href="favicon.png">
<body> </head>
<div class="welcome-container"> <body>
<h1>Welcome to Poker PAF</h1> <div class="main-wrapper">
<button onclick="window.location.href='config.html'">Créer une partie</button><br><br> <header class="poker-table table-header">
<div class="table-inner">
<h1>Welcome to</h1>
<div class="logo-wrapper">
<img src="favicon.png" alt="Poker PAF Logo" class="logo-paf">
</div>
</div>
</header>
<h2>Parties en cours :</h2> <div class="tables-hall">
<div id="games_list"> <div class="poker-table table-main">
<div class="table-inner">
<div class="button-center-wrapper">
<button class="btn-main-create" onclick="window.location.href='config.html'">
Créer une partie
</button>
</div>
<h2>Parties en cours</h2>
<div id="games_list">
</div>
</div>
</div> </div>
</div> </div>
</body> </div>
<script src="js/index.js"></script> <script src="js/index.js"></script>
</body>
</html> </html>
+3
View File
@@ -9,3 +9,6 @@
[02-Oct-2023 18:48:29 +0000]: <13n3u2rh> IMAP Error: Login failed for whykioh@gmail.com against localhost from 192.168.0.254. Could not connect to localhost:143: Aucune connexion na pu être établie car lordinateur cible la expressément refusée in C:\wamp64\www\ruty\mails\program\lib\Roundcube\rcube_imap.php on line 211 (POST /ruty/mails/?_task=login&_action=login) [02-Oct-2023 18:48:29 +0000]: <13n3u2rh> IMAP Error: Login failed for whykioh@gmail.com against localhost from 192.168.0.254. Could not connect to localhost:143: Aucune connexion na pu être établie car lordinateur cible la expressément refusée in C:\wamp64\www\ruty\mails\program\lib\Roundcube\rcube_imap.php on line 211 (POST /ruty/mails/?_task=login&_action=login)
[02-Oct-2023 19:02:57 +0000]: <13n3u2rh> IMAP Error: Login failed for root against localhost from 192.168.0.254. Could not connect to localhost:143: Aucune connexion na pu être établie car lordinateur cible la expressément refusée in C:\wamp64\www\ruty\mails\program\lib\Roundcube\rcube_imap.php on line 211 (POST /ruty/mails/?_task=login&_action=login) [02-Oct-2023 19:02:57 +0000]: <13n3u2rh> IMAP Error: Login failed for root against localhost from 192.168.0.254. Could not connect to localhost:143: Aucune connexion na pu être établie car lordinateur cible la expressément refusée in C:\wamp64\www\ruty\mails\program\lib\Roundcube\rcube_imap.php on line 211 (POST /ruty/mails/?_task=login&_action=login)
[02-Oct-2023 19:11:53 +0000]: <13n3u2rh> IMAP Error: Login failed for whykorp@gmail.com against localhost from 192.168.0.254. Could not connect to localhost:143: Aucune connexion na pu être établie car lordinateur cible la expressément refusée in C:\wamp64\www\ruty\mails\program\lib\Roundcube\rcube_imap.php on line 211 (POST /ruty/mails/?_task=login&_action=login) [02-Oct-2023 19:11:53 +0000]: <13n3u2rh> IMAP Error: Login failed for whykorp@gmail.com against localhost from 192.168.0.254. Could not connect to localhost:143: Aucune connexion na pu être établie car lordinateur cible la expressément refusée in C:\wamp64\www\ruty\mails\program\lib\Roundcube\rcube_imap.php on line 211 (POST /ruty/mails/?_task=login&_action=login)
[25-Mar-2026 20:07:03 +0000]: <n856jth9> DB Error: SQLSTATE[HY000] [1049] Base 'roundcubemail' inconnue in C:\wamp\www\ruty\mails\program\lib\Roundcube\rcube_db.php on line 201 (GET /ruty/mails/)
[25-Mar-2026 20:07:14 +0000]: <n856jth9> DB Error: SQLSTATE[HY000] [1049] Base 'roundcubemail' inconnue in C:\wamp\www\ruty\mails\program\lib\Roundcube\rcube_db.php on line 201 (GET /ruty/mails/)
[25-Mar-2026 20:07:17 +0000]: <n856jth9> DB Error: SQLSTATE[HY000] [1049] Base 'roundcubemail' inconnue in C:\wamp\www\ruty\mails\program\lib\Roundcube\rcube_db.php on line 201 (GET /ruty/mails/)