flask/flaskr/static/style.css
Neo 890ee95d28 Add collapsible posts feature
Implemented functionality to collapse and expand posts in the
main blog view. Users can now toggle the visibility of a post's
body by clicking on the post header. Additionally, clicking on
the "Posts" header at the top of the page will toggle the
visibility of all posts simultaneously. This enhancement improves
the user experience by allowing users to manage the display of
content more efficiently.

Fixes #FLAS-32
2024-09-09 22:12:43 +00:00

236 lines
3.4 KiB
CSS

html {
font-family: 'Roboto', sans-serif;
background: #FEFAE0;
padding: 1rem;
}
body {
max-width: 960px;
margin: 0 auto;
background: white;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
border-radius: 8px;
}
h1, h2, h3, h4, h5, h6 {
font-family: 'Roboto', sans-serif;
color: #377ba8;
margin: 1rem 0;
}
a {
color: #377ba8;
text-decoration: none;
}
hr {
border: none;
border-top: 1px solid #E0E5B6;
}
nav {
background: #CCD5AE;
display: flex;
align-items: center;
padding: 0 0.5rem;
border-radius: 8px;
}
nav h1 {
flex: auto;
margin: 0;
}
nav h1 a {
text-decoration: none;
padding: 0.25rem 0.5rem;
color: #377ba8;
}
nav ul {
display: flex;
list-style: none;
margin: 0;
padding: 0;
align-items: center;
}
nav ul li a, nav ul li span, header .action {
display: block;
padding: 0.5rem;
color: #377ba8;
}
.content {
padding: 0 1rem 1rem;
}
.content > header {
border-bottom: 1px solid #E0E5B6;
display: flex;
align-items: flex-end;
}
.content > header h1 {
flex: auto;
margin: 1rem 0 0.25rem 0;
}
.flash {
margin: 1em 0;
padding: 1em;
background: #FAEDCE;
border: 1px solid #377ba8;
border-radius: 4px;
}
.post > header {
display: flex;
align-items: flex-end;
font-size: 0.85em;
cursor: pointer;
}
.post > header > div:first-of-type {
flex: auto;
}
.post > header h1 {
font-size: 1.5em;
margin-bottom: 0;
}
.post .about {
color: slategray;
font-style: italic;
}
.post .body {
white-space: pre-line;
display: block;
}
.content:last-child {
margin-bottom: 0;
}
.content form {
margin: 1em 0;
display: flex;
flex-direction: column;
}
.content label {
font-weight: bold;
margin-bottom: 0.5em;
}
.content input, .content textarea {
margin-bottom: 1em;
background: #f5f5f5;
border: 1px solid #ccc;
padding: 0.5em;
border-radius: 4px;
}
.content textarea {
min-height: 12em;
resize: vertical;
}
input.danger {
color: #cc2f2e;
}
input[type=submit] {
align-self: start;
min-width: 10em;
background-color: #377ba8;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
transition: background-color 0.3s;
}
input[type=submit]:hover {
background-color: #2c5f8a;
}
#theme-toggle {
position: relative;
width: 50px;
height: 25px;
background: #ccc;
border-radius: 25px;
cursor: pointer;
transition: background 0.3s;
display: flex;
align-items: center;
justify-content: center;
}
#theme-toggle:before {
content: '\f186'; /* FontAwesome Unicode for moon */
font-family: 'FontAwesome';
font-weight: 900;
position: absolute;
top: 2px;
left: 2px;
width: 21px;
height: 21px;
border-radius: 50%;
transition: transform 0.3s, content 0.3s;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
color: #333;
}
html.dark-mode {
background: #555555;
}
body.dark-mode #theme-toggle {
background: #4d4d4d;
}
body.dark-mode #theme-toggle:before {
transform: translateX(25px);
content: '\f185'; /* FontAwesome Unicode for sun */
color: #e0e0e0;
}
body.dark-mode {
background: #121212;
color: #e0e0e0;
}
body.dark-mode a {
color: #bb86fc;
}
body.dark-mode nav {
background: #333;
}
body.dark-mode .flash {
background: #333;
border-color: #bb86fc;
}
body.dark-mode .post .about {
color: #999;
}
body.dark-mode .content input,
body.dark-mode .content textarea {
background: #333;
color: #e0e0e0;
border: 1px solid #555;
}
.post.collapsed .body {
display: none;
}