Files
fvtt-hamalron/styles/chat.less
T
uberwald b35b0809d4 fix: placement boutons Tarot/Actions/Épreuve dans le chat FVTT v14
- insertion en haut de #chat (avant sidebar-tab-core) au lieu
  d'insérer avant #chat-controls (caché par le scroll en v14)
- remplacement inline styles → classes CSS .hamalron-chat-tools/.hamalron-chat-btn
- CSS externalisé dans chat.less
2026-07-23 22:22:11 +02:00

990 lines
21 KiB
Plaintext

.fvtt-hamalron {
&.ask-roll {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-family: var(--font-secondary);
font-size: calc(var(--font-size-standard) * 1.1);
}
&.competence-roll {
background: #e8e8e8;
border: 2px solid #999;
border-radius: 0.5rem;
overflow: hidden;
.competence-roll-header {
background: rgba(255, 255, 255, 0.5);
padding: 0.5rem;
border-bottom: 2px solid #999;
.actor-info-compact {
display: flex;
align-items: center;
gap: 0.5rem;
.actor-avatar {
width: 40px;
height: 40px;
border-radius: 50%;
border: 2px solid #667eea;
object-fit: cover;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}
.actor-details {
flex: 1;
.competence-name {
margin: 0 0 0.25rem 0;
font-size: 1rem;
color: #667eea;
font-weight: bold;
}
.competence-meta {
display: flex;
gap: 0.75rem;
font-size: 0.75rem;
color: var(--color-text-dark-secondary);
.meta-item {
display: flex;
align-items: center;
gap: 0.35rem;
i {
color: #667eea;
font-size: 0.75rem;
}
}
}
}
}
}
.competence-roll-body {
padding: 0.5rem;
.card-used-section {
background: rgba(102, 126, 234, 0.1);
border: 1px solid rgba(102, 126, 234, 0.4);
border-radius: 0.35rem;
padding: 0.4rem;
margin-bottom: 0.5rem;
.card-used-label {
display: flex;
align-items: center;
gap: 0.3rem;
font-size: 0.75rem;
font-weight: bold;
color: #4a5fc1;
margin-bottom: 0.35rem;
i {
font-size: 0.75rem;
}
}
.card-used-content {
display: flex;
align-items: center;
gap: 0.4rem;
.card-thumbnail {
width: 40px;
height: 40px;
border-radius: 0.25rem;
border: 1px solid rgba(102, 126, 234, 0.5);
object-fit: cover;
}
.card-info {
display: flex;
flex-direction: column;
gap: 0.25rem;
.card-name {
font-weight: bold;
color: var(--color-text-dark-primary);
}
.card-match {
display: flex;
align-items: center;
gap: 0.3rem;
font-size: 0.75rem;
font-style: italic;
&.match-success {
color: #2ecc71;
i {
color: #2ecc71;
}
}
&.match-partial {
color: #f39c12;
i {
color: #f39c12;
}
}
&.match-atout {
color: #9b59b6;
font-weight: bold;
i {
color: #9b59b6;
}
}
i {
font-size: 0.7rem;
}
}
// Styles pour les règles spéciales des cartes
.valet-special-rule,
.cavalier-special-rule,
.reine-special-rule,
.roi-special-rule {
display: flex;
align-items: center;
gap: 0.3rem;
font-size: 0.75rem;
font-weight: bold;
padding: 0.3rem 0.4rem;
border-radius: 0.25rem;
background: rgba(255, 193, 7, 0.15);
border-left: 3px solid #ffc107;
color: #856404;
margin-top: 0.2rem;
i {
font-size: 0.8rem;
color: #ffc107;
}
}
}
}
}
.calculation-section {
background: rgba(0, 0, 0, 0.05);
border-radius: 0.35rem;
padding: 0.4rem;
margin-bottom: 0.5rem;
.calculation-row {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0.2rem 0;
font-size: 0.8rem;
.calc-label {
color: var(--color-text-dark-secondary);
}
.calc-value {
font-weight: bold;
font-size: 0.9rem;
color: var(--color-text-dark-primary);
&.calc-bonus {
color: #2ecc71;
}
&.calc-total {
font-size: 1.1rem;
color: #667eea;
}
}
&.total-row {
padding-top: 0.3rem;
}
}
.calculation-divider {
height: 1px;
background: var(--color-border-dark);
margin: 0.4rem 0;
}
}
.difficulty-section {
.difficulty-info {
display: flex;
align-items: center;
gap: 0.4rem;
padding: 0.4rem;
background: rgba(0, 0, 0, 0.05);
border-radius: 0.35rem;
font-size: 0.8rem;
i {
color: #f39c12;
}
.difficulty-label {
color: var(--color-text-dark-primary);
font-weight: 500;
}
.difficulty-target {
margin-left: auto;
color: var(--color-text-dark-secondary);
strong {
color: var(--color-text-dark-primary);
font-size: 1rem;
}
}
}
}
}
.competence-roll-footer {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 0.5rem;
padding: 0.5rem;
font-size: 1.1rem;
font-weight: bold;
border-top: 2px solid #999;
.automatic-success-banner {
display: flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
width: 100%;
padding: 0.5rem;
background: linear-gradient(135deg, #ffd700 0%, #ffed4e 100%);
color: #8b6914;
font-size: 0.95rem;
font-weight: bold;
text-transform: uppercase;
letter-spacing: 0.1em;
border-radius: 0.25rem;
box-shadow: 0 2px 8px rgba(255, 215, 0, 0.4);
animation: pulse-banner 2s ease-in-out infinite;
i {
color: #8b6914;
text-shadow: 0 0 5px rgba(255, 255, 255, 0.5);
}
}
&.result-success {
background: rgba(46, 204, 113, 0.2);
color: #2ecc71;
.result-icon i {
color: #2ecc71;
}
}
&.result-failure {
background: rgba(234, 102, 102, 0.2);
color: #ea6666;
.result-icon i {
color: #ea6666;
}
}
&.gm-only-buttons {
background: rgba(102, 126, 234, 0.1);
padding: 0.75rem;
.special-rules-section {
background: rgba(255, 193, 7, 0.15);
border: 2px solid #ffc107;
border-radius: 0.35rem;
padding: 0.5rem;
margin-bottom: 0.75rem;
.special-rule-item {
display: flex;
align-items: center;
gap: 0.4rem;
padding: 0.3rem 0;
font-weight: bold;
color: #856404;
&:not(:last-child) {
border-bottom: 1px solid rgba(255, 193, 7, 0.3);
margin-bottom: 0.3rem;
padding-bottom: 0.4rem;
}
i {
font-size: 0.9rem;
color: #ffc107;
}
strong {
color: #6c5400;
}
}
}
.gm-buttons {
display: flex;
gap: 0.75rem;
width: 100%;
button {
flex: 1;
padding: 0.5rem 1rem;
border: 2px solid #667eea;
border-radius: 0.35rem;
background: white;
color: #667eea;
font-weight: bold;
font-size: 0.9rem;
cursor: pointer;
transition: all 0.2s;
display: flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
i {
font-size: 0.85rem;
}
&:hover {
background: #667eea;
color: white;
transform: translateY(-1px);
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
&.sous-tension-btn {
border-color: #f39c12;
color: #f39c12;
&:hover {
background: #f39c12;
color: white;
}
}
&.oppose-btn {
border-color: #e74c3c;
color: #e74c3c;
&:hover {
background: #e74c3c;
color: white;
}
}
}
}
}
.result-icon {
font-size: 1.2rem;
}
.result-text {
text-transform: uppercase;
letter-spacing: 0.05em;
}
}
}
&.hamalron-tarot-draw {
padding: 0.5rem;
.tarot-draw-header {
margin-bottom: 1rem;
.tarot-draw-title {
display: flex;
align-items: center;
gap: 0.5rem;
margin: 0;
padding-bottom: 0.5rem;
border-bottom: 2px solid var(--color-border-dark);
font-size: 1.25rem;
color: var(--color-text-dark-primary);
i {
color: #667eea;
}
}
}
.tarot-draw-content {
display: flex;
gap: 1rem;
.tarot-card-image {
flex-shrink: 0;
img {
width: 150px;
height: 150px;
object-fit: cover;
border-radius: 0.25rem;
border: 2px solid var(--color-border-dark);
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}
}
.tarot-card-details {
flex: 1;
display: flex;
flex-direction: column;
gap: 0.5rem;
.tarot-detail-row {
display: flex;
gap: 0.5rem;
.detail-label {
font-weight: bold;
color: var(--color-text-dark-secondary);
}
.detail-value {
color: var(--color-text-dark-primary);
}
}
.tarot-description {
margin-top: 0.5rem;
padding-top: 0.5rem;
border-top: 1px solid var(--color-border-dark);
.description-label {
font-weight: bold;
color: var(--color-text-dark-secondary);
margin-bottom: 0.25rem;
}
.description-content {
color: var(--color-text-dark-primary);
font-style: italic;
}
}
}
}
}
&.tarot-draw-chat {
background: #e8e8e8;
border: 2px solid #999;
border-radius: 0.5rem;
overflow: hidden;
.tarot-draw-header {
background: rgba(255, 255, 255, 0.5);
padding: 0.5rem;
border-bottom: 2px solid #999;
.draw-info-compact {
display: flex;
align-items: center;
gap: 0.5rem;
.card-thumbnail {
width: 60px;
height: 60px;
border-radius: 0.25rem;
object-fit: cover;
border: 2px solid #999;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}
.card-details {
flex: 1;
.card-name {
margin: 0 0 0.25rem 0;
font-size: 1rem;
font-weight: bold;
color: #333;
}
.card-meta {
display: flex;
gap: 0.75rem;
flex-wrap: wrap;
font-size: 0.75rem;
.meta-item {
display: flex;
align-items: center;
gap: 0.25rem;
color: #666;
i {
color: #999;
}
}
}
}
}
}
.tarot-draw-body {
padding: 0.5rem;
.description-section {
.description-label {
display: flex;
align-items: center;
gap: 0.4rem;
font-size: 0.8rem;
font-weight: bold;
color: #666;
margin-bottom: 0.4rem;
i {
color: #999;
}
}
.description-content {
font-size: 0.85rem;
color: #555;
font-style: italic;
line-height: 1.4;
padding: 0.4rem;
background: rgba(255, 255, 255, 0.3);
border-radius: 0.25rem;
border-left: 3px solid #999;
}
}
}
}
&.tarot-tension-chat {
background: #e8e8e8;
border: 2px solid #999;
border-radius: 0.5rem;
overflow: hidden;
.tarot-tension-header {
background: rgba(255, 165, 0, 0.2);
padding: 0.5rem;
border-bottom: 2px solid #f39c12;
.tension-info-compact {
display: flex;
align-items: center;
gap: 0.5rem;
.card-thumbnail {
width: 60px;
height: 60px;
border-radius: 0.25rem;
object-fit: cover;
border: 2px solid #f39c12;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}
.card-details {
flex: 1;
.card-name {
margin: 0 0 0.25rem 0;
font-size: 1rem;
font-weight: bold;
color: #333;
}
.card-meta {
display: flex;
gap: 0.75rem;
flex-wrap: wrap;
font-size: 0.75rem;
.meta-item {
display: flex;
align-items: center;
gap: 0.25rem;
color: #666;
i {
color: #f39c12;
}
}
}
}
}
}
.tarot-tension-body {
padding: 0.5rem;
.difficulty-section {
margin-bottom: 0.75rem;
padding: 0.5rem;
background: rgba(243, 156, 18, 0.1);
border-left: 3px solid #f39c12;
border-radius: 0.25rem;
.difficulty-label {
display: flex;
align-items: center;
gap: 0.4rem;
font-size: 0.75rem;
font-weight: bold;
color: #666;
margin-bottom: 0.25rem;
i {
color: #f39c12;
}
}
.difficulty-value {
font-size: 0.9rem;
font-weight: bold;
color: #333;
}
}
.calculation-section {
.calculation-row {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0.3rem 0.5rem;
margin-bottom: 0.25rem;
background: rgba(255, 255, 255, 0.3);
border-radius: 0.25rem;
.calc-label {
font-size: 0.8rem;
color: #666;
}
.calc-value {
font-size: 0.85rem;
font-weight: bold;
color: #333;
&.positive {
color: #27ae60;
}
&.negative {
color: #e74c3c;
}
}
}
.calculation-total {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0.5rem;
margin-top: 0.5rem;
background: rgba(243, 156, 18, 0.15);
border: 2px solid #f39c12;
border-radius: 0.25rem;
.total-label {
font-size: 0.85rem;
font-weight: bold;
color: #666;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.total-value {
font-size: 1.25rem;
font-weight: bold;
color: #f39c12;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}
}
}
}
}
// Style pour le résumé des cartes numérotées
&.chat-tarot-summary {
background: linear-gradient(135deg, #f5f7fa 0%, #e8ecf1 100%);
border: 2px solid #667eea;
border-radius: 0.5rem;
padding: 1rem;
.tarot-summary-title {
text-align: center;
color: #667eea;
font-size: 1.2rem;
margin: 0 0 1rem 0;
font-weight: bold;
text-transform: uppercase;
letter-spacing: 0.05em;
i {
margin-right: 0.5rem;
}
}
.tarot-cards-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 0.5rem;
.tarot-card-summary-item {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
background: white;
border: 1px solid #ddd;
border-radius: 0.25rem;
padding: 0.35rem;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
transition:
transform 0.2s,
box-shadow 0.2s;
&:hover {
transform: translateY(-2px);
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.15);
}
img {
width: 35px;
height: auto;
border-radius: 0.2rem;
margin-bottom: 0.3rem;
object-fit: contain;
}
.card-name {
font-size: 0.65rem;
color: #333;
font-weight: 600;
line-height: 1.1;
}
}
}
}
}
@keyframes pulse-banner {
0%,
100% {
box-shadow: 0 0 10px rgba(255, 215, 0, 0.5);
}
50% {
box-shadow: 0 0 20px rgba(255, 215, 0, 0.8);
}
}
.tension-roll {
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
border: 1px solid #e94560;
border-radius: 8px;
overflow: hidden;
.tension-header {
text-align: center;
padding: 6px;
background: rgba(233, 69, 96, 0.15);
border-bottom: 1px solid rgba(233, 69, 96, 0.3);
.tension-badge {
color: #e94560;
font-size: 13px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 2px;
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
}
}
.tension-players {
display: flex;
align-items: center;
justify-content: space-around;
padding: 12px 8px;
.tension-side {
text-align: center;
.tension-side-label {
font-size: 11px;
color: #888;
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 4px;
}
.tension-side-value {
font-size: 28px;
font-weight: 700;
color: #f0e6d3;
}
.tension-side-name {
font-size: 11px;
color: #aaa;
margin-top: 2px;
}
&.tension-winner .tension-side-value {
color: #4caf50;
}
}
.tension-vs {
font-size: 14px;
font-weight: 700;
color: #e94560;
opacity: 0.7;
}
}
.tension-result {
text-align: center;
padding: 6px;
font-size: 13px;
font-weight: 600;
border-top: 1px solid rgba(233, 69, 96, 0.2);
&.result-success { background: rgba(76, 175, 80, 0.15); color: #4caf50; }
&.result-failure { background: rgba(244, 67, 54, 0.15); color: #f44336; }
}
}
.initiative-roll {
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
border: 1px solid #e94560;
border-radius: 8px;
overflow: hidden;
font-family: var(--font-secondary, sans-serif);
.initiative-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 8px 12px;
background: rgba(233, 69, 96, 0.15);
border-bottom: 1px solid rgba(233, 69, 96, 0.3);
.initiative-actor {
display: flex;
align-items: center;
gap: 8px;
.initiative-avatar {
width: 32px;
height: 32px;
border-radius: 50%;
border: 2px solid #e94560;
object-fit: cover;
}
.initiative-name {
color: #e0e0e0;
font-size: 14px;
font-weight: 600;
}
}
.initiative-badge {
display: flex;
align-items: center;
gap: 6px;
background: #e94560;
color: #fff;
font-size: 20px;
font-weight: 700;
padding: 4px 14px;
border-radius: 20px;
box-shadow: 0 0 10px rgba(233, 69, 96, 0.5);
}
}
.initiative-card {
display: flex;
align-items: center;
gap: 12px;
padding: 12px;
.initiative-card-img {
width: 48px;
height: 48px;
object-fit: contain;
border-radius: 4px;
background: rgba(255, 255, 255, 0.05);
padding: 4px;
}
.initiative-card-info {
display: flex;
flex-direction: column;
gap: 2px;
.card-name {
color: #f0e6d3;
font-size: 13px;
font-weight: 500;
}
.card-value {
color: #aaa;
font-size: 12px;
}
}
}
.initiative-footer {
text-align: center;
padding: 4px;
background: rgba(233, 69, 96, 0.08);
font-size: 11px;
color: #e94560;
text-transform: uppercase;
letter-spacing: 2px;
}
}
/* Chat sidebar tools (Tarot, Actions, Épreuve) */
.hamalron-chat-tools {
flex: 0 0 auto;
display: flex;
gap: 4px;
padding: 4px 8px;
border-bottom: 1px solid #444;
flex-wrap: wrap;
}
.hamalron-chat-btn {
display: flex;
align-items: center;
gap: 4px;
padding: 3px 8px;
background: #2a2a4a;
color: #e0e0e0;
border: 1px solid #555;
border-radius: 4px;
cursor: pointer;
font-size: 11px;
white-space: nowrap;
&:hover {
background: #3a3a6a;
}
}