From e12d1e6bfc7a3d6b61694cda29b6b703995b2a33 Mon Sep 17 00:00:00 2001 From: Ashhhleyyy Date: Wed, 21 Sep 2022 22:38:11 +0100 Subject: [PATCH] feat: initial commit --- README.md | 7 + login/resources/css/main.css | 371 +++++++++++++++++++++++++++++++++++ login/theme.properties | 18 ++ screenshot.png | Bin 0 -> 28021 bytes 4 files changed, 396 insertions(+) create mode 100644 README.md create mode 100644 login/resources/css/main.css create mode 100644 login/theme.properties create mode 100644 screenshot.png diff --git a/README.md b/README.md new file mode 100644 index 0000000..34e4f81 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# ashhhleyyy-kc + +![Screenshot of the keycloak login screen with this theme applied](./screenshot.png) + +My custom theme for [Keycloak](https://keycloak.org). + +I target whatever version I'm running (usually the latest), and so it may break on different versions. diff --git a/login/resources/css/main.css b/login/resources/css/main.css new file mode 100644 index 0000000..32d7558 --- /dev/null +++ b/login/resources/css/main.css @@ -0,0 +1,371 @@ +@import url('https://unpkg.com/@fontsource/poppins@4.5.8/index.css'); + +:root { + --background: #13092b; + --background-2: #090f2b; + --foreground: #ddd; + --foreground-bright: #fff; + --foreground-dim: #aaa; + --error: orange; + --accent: #f9027a; + --accent-dim: hsl(331, 50%, 49%); + --primary: #8da1ee; + --confirm: #82f1b1; + --warning: #fb7185; +} + +body { + font-family: 'Poppins', sans-serif; + background-color: var(--background); + background-image: url('https://ashhhleyyy.dev/assets-gen/background.svg'); + background-attachment: fixed; + background-position: center; + color: var(--foreground); + margin: 0; +} + +body.error { + background-image: url('https://ashhhleyyy.dev/assets-gen/background.svg?error=true'); +} + +@media only screen and (max-width: 720px) { + body { + background-image: url('https://ashhhleyyy.dev/assets-gen/background.svg?small=true'); + } + + body.error { + background-image: url('https://ashhhleyyy.dev/assets-gen/background.svg?error=true&small=true'); + } +} + +a { + color: var(--foreground); +} + +h1 { + margin: 0; + display: flex; + flex-direction: row; + align-items: center; +} + +.avatar { + margin-top: 16px; + margin-right: 8px; + border-radius: 50%; + border: 2px solid var(--accent); +} + +.page-container { + display: flex; + align-items: center; + flex-direction: column; + min-height: 100vh; + max-width: 100vw; +} + +.site-header { + display: flex; + align-items: center; + flex-direction: column; +} + +.nav { + display: flex; + flex-direction: row; + flex-wrap: wrap; + margin: 16px; + width: 100%; + max-width: 720px; + align-items: center; + justify-content: space-around; +} + +.kc-logo-text { + font-family: monospace; + font-size: 24px; + font-weight: 500; + text-decoration: none; + color: var(--foreground-bright); +} + +.kc-logo-text:hover { + color: var(--foreground); +} + +.kc-logo-text::before { + content: "[ "; + color: var(--accent); +} + +.kc-logo-text::after { + content: " ]"; + color: var(--accent); +} + +.content { + margin: 16px; + padding: 32px; + width: calc(100vw - 32px); + max-width: 480px; + background-color: var(--background-2); + border: 1px solid var(--accent); + border-radius: 4px; +} + +.error .content { + border-color: var(--error); +} + +.footer { + margin-bottom: 16px; +} + +.generated { + font-size: 12px; +} + +.link-list { + list-style: none; + padding: 0; + display: flex; + flex-direction: column; + align-items: center; +} + +.link-list > li { + padding: 8px; + border-radius: 8px; + border: 1px solid var(--accent); + width: calc(100% - 16px); + max-width: 512px; + margin: 8px; + display: flex; + place-content: center; + background-size: 125%; + background-image: url('https://ashhhleyyy.dev/assets-gen/background.svg?small=true'); +} + +.link-list > li.about { + background-image: url('https://ashhhleyyy.dev/assets-gen/background.svg?small=true&star_colour=%23f9027a'); +} + +.link-list > li.github { + background-image: url('https://ashhhleyyy.dev/assets-gen/background.svg?small=true&star_colour=%23891ee3'); +} + +.link-list > li.twitter { + background-image: url('https://ashhhleyyy.dev/assets-gen/background.svg?small=true&star_colour=%2300acee'); +} + +.link-list > li.twitch { + background-image: url('https://ashhhleyyy.dev/assets-gen/background.svg?small=true&star_colour=%236441a5'); +} + +.link-list > li.twitch { + background-image: url('https://ashhhleyyy.dev/assets-gen/background.svg?small=true&star_colour=%236441a5'); +} + +.link-list > li.nucleoid { + background-image: url('https://ashhhleyyy.dev/assets-gen/background.svg?small=true&star_colour=%232cab6b'); +} + +.link-list > li.modrinth { + background-image: url('https://ashhhleyyy.dev/assets-gen/background.svg?small=true&star_colour=%2330b27b'); +} + +blockquote { + border-left: var(--accent) 2px solid; + margin-block-start: 1em; + margin-block-end: 1em; + padding-inline-start: 20px; + margin-inline-start: 10px; + margin-inline-end: 20px; + color: var(--foreground-dim); +} + +pre { + overflow-x: auto; + border: var(--accent) 1px solid; + padding: 8px; + background-color: black !important; + border-radius: 4px; +} + +pre::-webkit-scrollbar, code::-webkit-scrollbar { + height: 8px; +} + +pre::-webkit-scrollbar-track, code::-webkit-scrollbar-track { + background-color: rgba(0, 0, 0, 0); +} + +pre::-webkit-scrollbar-thumb, code::-webkit-scrollbar-thumb { + background-color: var(--accent); + border-radius: 2px; +} + +pre::-webkit-scrollbar-thumb:hover, code::-webkit-scrollbar-thumb:hover { + background-color: var(--accent-dim); +} + +code { + font-family: 'JetBrains Mono', 'Oxygen Mono', monospace; + border: var(--accent-dim) 1px solid; + padding: 2px; + border-radius: 4px; + background-color: black; +} + +pre > code { + border: none; + padding: 0; +} + +.icon-row { + display: flex; + flex-direction: row; + align-items: center; +} + +.icon-row > * { + margin-right: 16px; +} + +.icon-row svg { + transition: fill 200ms ease; + fill: white; +} + +.hover-email:hover { + fill: var(--accent); +} + +.hover-discord:hover { + fill: #5865F2; +} + +.hover-github:hover { + fill: #24292f; +} + +.hover-mastodon:hover { + fill: #3c99dc; +} + +.hover-reddit:hover { + fill: #ff4500; +} + +.hover-twitch:hover { + fill: #6441a5; +} + +.hover-twitter:hover { + fill: #00acee; +} + +.hover-gitea:hover { + fill: #609926; +} + +.icon { + height: 1.2em; + fill: var(--foreground-dim); + vertical-align: sub; +} + +table, th, td { + border: var(--accent-dim) 1px solid; +} + +table { + border-spacing: 0; + border-spacing: 0; + overflow-x: scroll; + border-width: 2px; + border-radius: 4px; +} + +td { + padding: 8px; +} + +.form-group { + display: flex; + flex-direction: column; + width: 100%; + margin-top: 16px; +} + +.form-input { + margin: 8px 0; + background-color: rgba(128, 128, 128, .25); + color: white; + border: #888 2px solid; + padding: 8px; + border-radius: 8px; + font-size: medium; +} + +.button { + border: none; + padding: 8px; + border-radius: 8px; + cursor: pointer; + text-decoration: none; + font-size: initial; + color: black; + transition: filter 200ms ease; + vertical-align: middle; +} + +input[type="text"]:focus-visible, +input[type="password"]:focus-visible { + outline: none; + border-color: var(--accent); +} + +.error-message { + color: var(--warning); +} + +.button:hover { + filter: brightness(.8); +} + +.button.primary { + background-color: var(--primary); +} + +.button.confirm { + background-color: var(--confirm); +} + +.button.warning { + background-color: var(--warning); +} + +a.primary { + color: var(--primary); +} + +a.confirm { + color: var(--confirm); +} + +a.warning { + color: var(--warning); +} + +#kc-form-buttons { + display: flex; + width: 100%; + flex-direction: row; + flex-wrap: wrap; + gap: 8px; +} + +#kc-form-buttons .button { + flex: 1; +} diff --git a/login/theme.properties b/login/theme.properties new file mode 100644 index 0000000..50b4960 --- /dev/null +++ b/login/theme.properties @@ -0,0 +1,18 @@ +parent=base +import=common/keycloak +styles=css/main.css + +meta=viewport==width=device-width,initial-scale=1 + +kcLoginClass=page-container + +kcHeaderClass=site-header +kcHeaderWrapperClass=nav + +kcFormCardClass=content +kcFormGroupClass=form-group +kcInputClass=form-input +kcInputErrorMessageClass=error-message + +kcButtonClass=button +kcButtonPrimaryClass=primary diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..10d3a7b768ab88ed8217d4437c08ae7835f82821 GIT binary patch literal 28021 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⋙q~7b=;&HZ@=qR9KJU!_c}Engppada6zBJeX&P?35FZDmY(DO zaVQRYq$~ti7{$|i%wIWuQYIS<<$O`B<)UXu0DXUZg%9_iK)VQgkL4?;_GTrFBJ9{E zoV-i6(vKIzpNBnhN?1U}=Tg{7WV0bbDBNK2*xb%E)oDI#b#?wJ-}$7B2i2LCIr|!G z5gqRHJ)z;IjmqGHpM}lah2IX@PZh>CZ~Gb?bcU;wx3>x`tV!1dsT*ew#Z|f!1XYL4 zw)e^i2!HdtT`ys$EY%E*lV9!C<^=KaS&=BnRL4;s3#LqM8e>yCR~~B>_652#hE=D^ z$22?l$fqUZ-tO}uT^TBYg{tvC$NICDIYTm2&}kGF~m6kZ>w;n##5x zW&Mgdc!WEVcow`mn^VSVYe@kGcDpZUXdYFb?hUHGnEnZiJJ$NC6YpO8i+zVggRAy7 zObOSQkkMj5XGNxjZ%1voRLAK81A?slV`bWgy-BBHn zaYf>?{}=FhuYb|EZJn9Yg;|Hc>>rX7q)BLpHd38bk%c9@ev{Qc( zd>k+{WLzP8YKX6p6L--I6bk4}?F36XmM(^}>1kbiAA+H9$>*3BpvTz^SKVQyJ}fxU;c<>oAPF!c8$ z+s}mEwBOT@g`a65#cpKp*?IW3zACidVq19p{8cfAp_{ClEqL;$qTIHldfLOp;us_Z z^`D3R(VYa#dH_y7GBJFmHssE*J%WHTP}VwQtoQq$fnM=9RWp8-Ud!K9zg_rO)euR>j{Pn1uaoO=9EtVX zHOgEHau{Amc)(%DouL!k_d*`v4Qj@vi|#7)O$+34iq`DW2w{i@ade+_n$s znq^jYGn%g9%cV@B$JG#gxC_3!wZWg0*yTidCd~~-H`?CXnE&Qm@rQJ*Nxzlp!5v$? zjX^qe;vn2=qt-RZdX~bqnN8;@L)TU`&p9rAiA~Z6GHOX7knKQE7#!N)gkY}nMQ0x? z+~H&Q1-*Vsms9CdE7idV$O2vXdCJD*SD(mVajh6?yr12+w8NKC(%0LfasvZ_0yZ`) z)fUoIty|d0m^4Oej)^6$)d{@LyC&TuPlh%Z1kR_4depx0r*W(aPS^jWn07=j?#$g;x)r zMc?HUn~TdXi+Sz5I1~XF1o0d1a~mZY(WSq96Zo z2Nz$_CA)2^ryjf;kfYKa)!8@NtKAbECUooRbUlhs1b3YAC!PaUOb6okE;5NZ%=+vv z1kem{Dn@H*$femrSeR8lT)&}1f%WIIU%v1)8Q6hGVMb$F;tZ6b^#Jok#(n&y3zmMNf`@8S8_{$?8_ZI^t5_H` zBTcB5sVNmNF}N>lMHJ>yjF5rQE1CLdeGsX!j5lAR%G$A_={OB_@SW|q*(AUcMkUV! zwMO>9L>>uOQf`xBUoWNM-CD&B7K*|a3!V}|U)E@co6n-=!=Je^(|!l>_lQbOYmP4p zI6PXH{aKh|EW^1fG}n!F*po*U4+*Ls4^lnD!GE*jk9nde&Rgnn8f`%v(8=$ta@{io z72>c5HNE|99QBb$=uA}kHBT~g+!5^q{o?k^qaY2aO(|!=Mr8*|vH0yYMSkkU7G2cN z{1N7_;i;J+G#Ns^cxQOk24ASZ8lb-M$!GY;za8`HBcqqU27>BPR(|j&j@0kP*}tJJcY`x$+X{ z8f5?ME>cmw{7q6koMJhj$Zg@v!|Wmta0>x^vcTc>&&2zQ%* zcC5Tl)u=m%u||ino1n{d3Sl-Ovh61q@zSyW)elrCCGa#N4 p*#C4LA9AB2bb)Nk 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 literal 0 HcmV?d00001