From 9333eb327c3785ba8945e32ab381f7facc03b36d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D0=BE=D0=B2=20=D0=90=D1=80=D1=82?= =?UTF-8?q?=D0=B5=D0=BC?= Date: Wed, 8 Apr 2026 12:30:51 +0300 Subject: [PATCH] Refine 'drill-luxe' Keycloak theme with responsive design and style adjustments - Updated CSS styles for improved responsiveness and visual consistency across the login interface. - Introduced clamp functions for padding and gap properties to enhance adaptability on various screen sizes. - Adjusted dimensions and spacing for various elements to improve layout integrity and user experience. - Added media queries for better handling of smaller screen heights, ensuring a more user-friendly interface. --- .../login/resources/css/drill-luxe.css | 198 ++++++++++++++---- 1 file changed, 152 insertions(+), 46 deletions(-) diff --git a/keycloak/themes/drill-luxe/login/resources/css/drill-luxe.css b/keycloak/themes/drill-luxe/login/resources/css/drill-luxe.css index 27e29a4..7f5ab6f 100644 --- a/keycloak/themes/drill-luxe/login/resources/css/drill-luxe.css +++ b/keycloak/themes/drill-luxe/login/resources/css/drill-luxe.css @@ -22,6 +22,7 @@ body.drill-login { margin: 0; min-height: 100vh; + min-height: 100dvh; font-family: "Georgia", "Inter Variable", @@ -42,11 +43,12 @@ body.drill-login { .drill-login__shell { min-height: 100vh; + min-height: 100dvh; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(390px, 520px); - gap: 30px; + gap: clamp(18px, 2vw, 30px); align-items: stretch; - padding: 30px; + padding: clamp(16px, 2.4vh, 30px) clamp(16px, 2vw, 30px); } .drill-login__brand, @@ -64,11 +66,11 @@ body.drill-login { } .drill-login__brand { - padding: 50px; + padding: clamp(28px, 3.8vh, 50px); display: flex; flex-direction: column; justify-content: space-between; - gap: 32px; + gap: clamp(18px, 2.2vh, 32px); } .drill-login__brand::before, @@ -86,8 +88,8 @@ body.drill-login { content: ""; position: absolute; inset: auto -10% -16% auto; - width: 380px; - height: 380px; + width: 320px; + height: 320px; border-radius: 50%; background: radial-gradient(circle, rgba(185, 106, 51, 0.18) 0%, rgba(185, 106, 51, 0.04) 42%, transparent 70%); @@ -143,22 +145,22 @@ body.drill-login { display: flex; align-items: center; justify-content: space-between; - gap: 18px; + gap: 14px; } .drill-login__brand-mark { - width: 78px; - height: 78px; + width: 70px; + height: 70px; display: inline-flex; align-items: center; justify-content: center; - border-radius: 26px; + border-radius: 24px; background: linear-gradient(145deg, rgba(185, 106, 51, 0.24), rgba(239, 214, 180, 0.1)), rgba(255, 255, 255, 0.02); border: 1px solid rgba(210, 161, 112, 0.3); color: var(--drill-accent-quaternary); - font-size: 2rem; + font-size: 1.8rem; font-weight: 700; letter-spacing: 0.1em; box-shadow: @@ -183,7 +185,7 @@ body.drill-login { right: 14px; top: 16px; width: 8px; - height: 46px; + height: 40px; border-radius: 999px; background: linear-gradient(180deg, rgba(255, 241, 223, 0.88), rgba(210, 161, 112, 0.25)); box-shadow: 0 0 18px rgba(239, 214, 180, 0.24); @@ -200,13 +202,13 @@ body.drill-login { display: inline-flex; align-items: center; justify-content: center; - min-height: 44px; - padding: 11px 18px; + min-height: 40px; + padding: 9px 16px; border-radius: 999px; border: 1px solid rgba(210, 161, 112, 0.18); background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.025)); color: var(--drill-accent-tertiary); - font-size: 0.76rem; + font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; white-space: nowrap; @@ -225,7 +227,7 @@ body.drill-login { text-transform: uppercase; letter-spacing: 0.28em; font-size: 0.74rem; - margin-bottom: 20px; + margin-bottom: 14px; } .drill-login__brand h1, @@ -239,8 +241,8 @@ body.drill-login { .drill-login__brand h1 { max-width: 760px; font-family: Georgia, "Times New Roman", serif; - font-size: clamp(3.1rem, 6vw, 6rem); - line-height: 0.95; + font-size: clamp(2.5rem, 4.8vw, 5.1rem); + line-height: 0.92; text-wrap: balance; } @@ -248,24 +250,24 @@ body.drill-login { .drill-login__panel p, .drill-login__feature-grid p { color: var(--drill-text-secondary); - line-height: 1.72; + line-height: 1.55; font-family: "Inter Variable", "Inter", "Segoe UI", sans-serif; - font-size: 1.02rem; + font-size: 0.95rem; } .drill-login__metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); - gap: 18px; + gap: 14px; } .drill-login__metrics div { position: relative; - padding: 20px 22px; + padding: 16px 18px; border-radius: 26px; background: linear-gradient(180deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.02)), @@ -299,10 +301,10 @@ body.drill-login { .drill-login__metrics strong { display: block; - margin: 8px 0 10px; + margin: 6px 0 8px; color: var(--drill-accent-tertiary); font-family: Georgia, "Times New Roman", serif; - font-size: 1.2rem; + font-size: 1.08rem; font-weight: 600; letter-spacing: 0.03em; } @@ -310,24 +312,24 @@ body.drill-login { .drill-login__metrics span { display: block; color: var(--drill-text-secondary); - line-height: 1.55; + line-height: 1.42; font-family: "Inter Variable", "Inter", "Segoe UI", sans-serif; - font-size: 0.95rem; + font-size: 0.88rem; } .drill-login__feature-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); - gap: 18px; + gap: 14px; } .drill-login__feature-grid article { position: relative; - padding: 22px; + padding: 18px; border-radius: 26px; background: linear-gradient(180deg, rgba(255, 255, 255, 0.028), rgba(255, 255, 255, 0.015)); border: 1px solid rgba(210, 161, 112, 0.12); @@ -357,22 +359,22 @@ body.drill-login { display: inline-block; color: var(--drill-accent-secondary); font-size: 0.8rem; - margin-bottom: 10px; + margin-bottom: 8px; } .drill-login__feature-grid strong { display: block; - margin-bottom: 10px; + margin-bottom: 8px; font-family: "Inter Variable", "Inter", "Segoe UI", sans-serif; - font-size: 1rem; + font-size: 0.94rem; } .drill-login__panel { - padding: 38px 36px; + padding: clamp(24px, 3.2vh, 38px) clamp(24px, 2vw, 36px); display: flex; flex-direction: column; justify-content: center; @@ -384,8 +386,8 @@ body.drill-login { .drill-login__panel-glow { inset: -20% auto auto -30%; - width: 240px; - height: 240px; + width: 200px; + height: 200px; border-radius: 50%; background: radial-gradient(circle, rgba(239, 214, 180, 0.12), transparent 68%); filter: blur(10px); @@ -393,19 +395,19 @@ body.drill-login { } .drill-login__panel-head { - margin-bottom: 28px; + margin-bottom: 22px; } .drill-login__panel h2 { font-family: Georgia, "Times New Roman", serif; - font-size: clamp(2.15rem, 4vw, 3.2rem); - margin-bottom: 14px; + font-size: clamp(1.9rem, 3.2vw, 2.8rem); + margin-bottom: 10px; line-height: 0.98; } .drill-login__alert { - margin-bottom: 18px; - padding: 15px 16px; + margin-bottom: 14px; + padding: 13px 14px; border-radius: 20px; border: 1px solid rgba(255, 255, 255, 0.08); background: rgba(255, 255, 255, 0.04); @@ -431,13 +433,13 @@ body.drill-login { .drill-login__form { display: flex; flex-direction: column; - gap: 18px; + gap: 14px; } .drill-login__field { display: flex; flex-direction: column; - gap: 8px; + gap: 6px; } .drill-login__field-row { @@ -477,9 +479,9 @@ body.drill-login { linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.025)), rgba(255, 255, 255, 0.02); color: var(--drill-text-primary); - padding: 17px 18px; + padding: 14px 16px; font: - 500 0.98rem/1.3 "Inter Variable", + 500 0.95rem/1.25 "Inter Variable", "Inter", "Segoe UI", sans-serif; @@ -508,10 +510,10 @@ body.drill-login { } .drill-login__submit { - margin-top: 8px; + margin-top: 4px; border: none; border-radius: 22px; - padding: 17px 20px; + padding: 15px 18px; font: 700 0.96rem/1.2 "Inter Variable", "Inter", @@ -545,7 +547,7 @@ body.drill-login { } .drill-login__footer { - margin-top: 22px; + margin-top: 16px; display: flex; justify-content: space-between; gap: 12px; @@ -559,6 +561,110 @@ body.drill-login { sans-serif; } +@media (max-height: 900px) { + .drill-login__shell { + gap: 16px; + padding: 16px; + } + + .drill-login__brand, + .drill-login__panel { + border-radius: 28px; + } + + .drill-login__brand { + padding: 24px; + gap: 14px; + } + + .drill-login__brand-orbit--one { + width: 180px; + height: 180px; + top: -72px; + } + + .drill-login__brand-orbit--two { + width: 320px; + height: 320px; + bottom: -180px; + left: -96px; + } + + .drill-login__brand h1 { + font-size: clamp(2rem, 3.8vw, 3.8rem); + } + + .drill-login__brand p, + .drill-login__panel p, + .drill-login__feature-grid p { + font-size: 0.88rem; + line-height: 1.45; + } + + .drill-login__metrics div, + .drill-login__feature-grid article { + padding: 14px; + } + + .drill-login__metrics strong { + font-size: 1rem; + } + + .drill-login__metrics span { + font-size: 0.82rem; + } + + .drill-login__feature-grid strong { + font-size: 0.9rem; + } + + .drill-login__panel { + padding: 22px; + } + + .drill-login__panel h2 { + font-size: clamp(1.7rem, 2.8vw, 2.3rem); + } + + .drill-login__field input { + padding: 13px 15px; + } + + .drill-login__submit { + padding: 14px 16px; + } +} + +@media (max-height: 760px) { + .drill-login__brand-copy p { + display: none; + } + + .drill-login__feature-grid article p { + display: none; + } + + .drill-login__metrics, + .drill-login__feature-grid { + gap: 10px; + } + + .drill-login__metrics div, + .drill-login__feature-grid article { + padding: 12px; + border-radius: 20px; + } + + .drill-login__eyebrow { + margin-bottom: 10px; + } + + .drill-login__footer { + margin-top: 12px; + font-size: 0.76rem; + } +} + .drill-login__footer a { color: var(--drill-accent-secondary); text-decoration: none;