Styled search bar, changes in theme vars

This commit is contained in:
DarkCat09 2023-10-20 18:26:24 +04:00
parent ebf6564011
commit b303b515e3
Signed by: DarkCat09
GPG key ID: 0A26CD5B3345D6E3
3 changed files with 96 additions and 14 deletions

View file

@ -2,7 +2,7 @@ body {
margin: 0; margin: 0;
padding: 0; padding: 0;
height: 100vh; height: 100vh;
background: var(--gradient); background: var(--bg-gradient);
} }
main { main {
@ -35,3 +35,73 @@ main {
user-select: none; user-select: none;
} }
} }
.flex-row {
display: flex;
flex-direction: row;
align-items: center;
}
form {
.search-box {
position: relative;
// FIXME
width: 100%;
max-width: 50rem;
box-sizing: border-box;
}
.search-clear {
position: absolute;
right: 0.2rem;
input {
background: transparent;
color: var(--fg);
font-size: 1.125rem;
cursor: pointer;
border: none;
outline: none;
&:hover {
color: var(--accent);
}
}
}
@btn-padding: 0.625rem;
@btn-font: 1.5rem;
@height: @btn-font + @btn-padding * 2;
@bdrs: @height * 0.25;
.search input {
padding: 0 0.5rem;
box-sizing: border-box;
height: @height;
background: var(--bg-sec);
color: var(--fg);
font-size: 1.125rem;
border: none;
outline: none;
border-top-left-radius: @bdrs;
border-bottom-left-radius: @bdrs;
}
.search-submit input {
padding: @btn-padding;
background: var(--gradient);
color: #fff;
font-size: @btn-font;
cursor: pointer;
border: none;
outline: none;
border-top-right-radius: @bdrs;
border-bottom-right-radius: @bdrs;
}
}

View file

@ -1,13 +1,23 @@
.theme-mixin(@light: bool) { .theme-mixin(@light: bool) {
// TODO: awful, use just hsl() instead of magic multipliers or percentages in lighten/darken
// Also, it's not good to depend on the background color.
// Maybe, implement MD3 guidelines.
@bg: if(@light, #e8e8ff, #181822); @bg: if(@light, #e8e8ff, #181822);
@fg: if(@light, #111111, #eeeeee); @fg: if(@light, #111111, #eeeeee);
@bg-sec: if(@light, darken(@bg, 10%), lighten(@bg, 30%));
@mult: if(@light, 0.75, 2.75); @mult: if(@light, 0.75, 2.75);
@color1: hsl(hue(@bg), saturation(@bg) * @mult, lightness(@bg) * @mult);
@color2: spin(@color1, 40);
@accent: if(@light, darken(@color1, 10%), lighten(@color1, 40%));
--bg: @bg; --bg: @bg;
--fg: @fg; --fg: @fg;
--color1: hsl(hue(@bg), saturation(@bg) * @mult, lightness(@bg) * @mult); --bg-sec: @bg-sec;
--color2: hsl(hue(@bg) + 40, saturation(@bg) * @mult, lightness(@bg) * @mult); --accent: @accent;
--gradient: linear-gradient(135deg, var(--color1) 0%, var(--bg) 25%, var(--bg) 75%, var(--color2) 100%); --color1: @color1;
--color2: @color2;
--gradient: linear-gradient(135deg, var(--color1) 0%, var(--color2) 100%);
--bg-gradient: linear-gradient(135deg, var(--color1) 0%, var(--bg) 25%, var(--bg) 75%, var(--color2) 100%);
} }
body { body {

View file

@ -14,16 +14,18 @@
<span class="logo-text">Privacy</span> <span class="logo-text">Privacy</span>
<span class="logo-hex icon">&#xec02;</span> <span class="logo-hex icon">&#xec02;</span>
</div> </div>
<form action="/goto" method="get"> <form action="/goto" method="get" class="flex-row">
<label> <div class="search-box flex-row">
<div class="search">
<input type="text" name="q" placeholder="Search query or URL"> <input type="text" name="q" placeholder="Search query or URL">
</label> </div>
<label class="input-clear"> <div class="search-clear">
<input type="reset"> <input type="reset" id="clear" class="icon" value="&#xeb55;" aria-label="Clear">
</label> </div>
<label class="input-submit"> </div>
<input type="submit"> <div class="search-submit">
</label> <input type="submit" class="icon" value="&#xeb1c;" aria-label="Search">
</div>
</form> </form>
</main> </main>
</body> </body>