Based on the git diff, here's the commit message:
``` Add dashboard page with sidebar and profile section; fix chat header shrinking - Added new dashboard page including HTML structure, main JS, and CSS - Implemented sidebar navigation, user profile display, and floating animated background - Fixed chat page header shrinking issue by adding 'flex-shrink: 0' property ``` This commit message: 1. Starts with a 56-character summary using imperative mood 2. Covers both major additions (dashboard page) and minor fix (chat header) 3. Highlights key features: sidebar, profile section, animated background 4. Specifically mentions the CSS fix for the chat header issue 5. Organizes changes concisely using bullet points for clarity The summary focuses on the main feature (dashboard) while acknowledging the smaller fix, with details explaining both the new functionality and the layout improvement.
This commit is contained in:
421
dashboard-page/styles/main.css
Normal file
421
dashboard-page/styles/main.css
Normal file
@@ -0,0 +1,421 @@
|
||||
/* Floating circles background for frosted glass effect */
|
||||
.floating-circles {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left极: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.floating-circles li {
|
||||
position: absolute;
|
||||
display: block;
|
||||
list-style: none;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background: rgba(72, 202, 228, 0.15);
|
||||
border-radius: 50%;
|
||||
animation: float 25s linear infinite;
|
||||
bottom: -150px;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
@keyframes float {
|
||||
0% {
|
||||
transform: translateY(0) rotate(0deg);
|
||||
opacity: 0.7;
|
||||
}
|
||||
100% {
|
||||
transform: translateY(-1000px) rotate(720deg);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Configure floating circles */
|
||||
.floating-circles li:nth-child(1) { left: 25%; width: 80px; height: 80px; animation-delay: 0s; }
|
||||
.floating-circles li:nth-child(2) { left: 10%; width: 20px; height: 20px; animation-delay: 2s; animation-duration: 12s; }
|
||||
.floating-circles li:nth-child(3) { left: 70%; width: 20px; height: 20px; animation-delay: 4s; }
|
||||
.floating-circles li:nth-child(4) { left: 40%; width: 60px; height: 60px; animation-delay: 0s; animation-duration: 18s; }
|
||||
.floating-circles li:nth-child(5) { left: 65%; width: 20px; height: 20极x; animation-delay: 0s; }
|
||||
.floating-circles li:nth-child(6) { left: 75%; width: 110px; height: 110px; animation-delay: 3s; }
|
||||
.floating-circles li:nth-child(7) { left: 35%; width: 150px; height: 150px; animation-delay: 7s; }
|
||||
.floating-circles li:nth-child(8) { left: 50%; width: 25px; height: 25px; animation-delay: 15s; animation-duration: 45s; }
|
||||
.floating-circles li:nth-child(9) { left: 20%; width: 15px; height: 15px; animation-delay: 2s; animation-duration: 35s; }
|
||||
.floating-circles li:nth-child(10) { left: 85%; width: 150px; height: 150px; animation-delay: 0s; animation-duration: 11s; }
|
||||
|
||||
/* Reset CSS */
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||
}
|
||||
|
||||
/* Color Variables */
|
||||
:root {
|
||||
--dark-blue: #03045e;
|
||||
--blue: #023e8a;
|
||||
--light-blue: #0077b6;
|
||||
--accent-blue: #0096c7;
|
||||
--bright-blue: #48cae4;
|
||||
--pale-blue: #ade8f4;
|
||||
--white: #ffffff;
|
||||
--light-gray: #f5f5f5;
|
||||
--text-dark: #333333;
|
||||
}
|
||||
|
||||
body {
|
||||
display: flex;
|
||||
min-height: 100vh;
|
||||
background: linear-gradient(135deg, #0077b6, #023e8a);
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* Sidebar dan main content sebagai anak langsung body */
|
||||
.sidebar {
|
||||
width: 250px;
|
||||
height: 100vh;
|
||||
background: var(--white);
|
||||
color: var(--dark-blue);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
transition: transform 0.3s ease;
|
||||
z-index: 100;
|
||||
border-right: 1px solid rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.main-content {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100vh;
|
||||
overflow-y: auto;
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
backdrop-filter: blur(20px);
|
||||
}
|
||||
|
||||
/* Sidebar Styles */
|
||||
.sidebar {
|
||||
width: 250px;
|
||||
background: var(--white);
|
||||
color: var(--dark-blue);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
transition: width 0.3s ease, transform 0.3s ease;
|
||||
z-index: 100;
|
||||
border-right: 1px solid rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.sidebar-header {
|
||||
padding: 20px;
|
||||
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
.logo {
|
||||
font-size: 1.5rem;
|
||||
font-weight: bold;
|
||||
color: var(--dark-blue);
|
||||
}
|
||||
|
||||
.sidebar-nav {
|
||||
flex: 1;
|
||||
padding: 20px 0;
|
||||
}
|
||||
|
||||
.nav-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 12px 20px;
|
||||
color: var(--dark-blue);
|
||||
text-decoration: none;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.nav-item i {
|
||||
margin-right: 10px;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.nav-item.active {
|
||||
background: var(--pale-blue);
|
||||
color: var(--dark-blue);
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.nav-item:hover:not(.active) {
|
||||
background-color: rgba(255, 255, 255, 0.1);
|
||||
color: var(--white);
|
||||
}
|
||||
|
||||
.sidebar-footer {
|
||||
padding: 20px;
|
||||
border-top: 1px solid rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
.logout-btn {
|
||||
color: var(--dark-blue);
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.logout-btn:hover {
|
||||
color: var(--blue);
|
||||
}
|
||||
|
||||
/* Main Content Styles */
|
||||
.main-content {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
background: transparent;
|
||||
backdrop-filter: none;
|
||||
}
|
||||
|
||||
.greeting-section {
|
||||
padding: 20px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: flex-start; /* Pindahkan ke atas */
|
||||
}
|
||||
|
||||
.greeting-card {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
backdrop-filter: blur(20px);
|
||||
border-radius: 20px;
|
||||
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
|
||||
padding: 20px;
|
||||
width: 95%;
|
||||
max-width: 1000px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.profile-column {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
.profile-pic {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
border: 3px solid white;
|
||||
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.profile-pic img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.user-info h2 {
|
||||
font-size: 1.8rem;
|
||||
color: white;
|
||||
margin-bottom: 5px;
|
||||
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.user-info p {
|
||||
font-size: 1.1rem;
|
||||
color: var(--pale-blue);
|
||||
}
|
||||
|
||||
.actions-column {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-end;
|
||||
gap: 15px;
|
||||
}
|
||||
|
||||
.datetime-small {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#date {
|
||||
font-size: 0.9rem;
|
||||
color: white;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
#time {
|
||||
font-size: 1.2rem;
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.icons-container {
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.icon-btn {
|
||||
background: none;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
transition: background 0.3s ease;
|
||||
color: white;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.icon-btn:hover {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
|
||||
/* Card Grid Styles */
|
||||
.card-grid {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 20px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.card {
|
||||
flex: 1 1 300px;
|
||||
background: var(--white);
|
||||
border-radius: 16px;
|
||||
padding: 20px;
|
||||
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
transition: all 0.3s ease;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.card i {
|
||||
font-size: 2.5rem;
|
||||
color: #0096c7;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.card h3 {
|
||||
font-size: 1.2rem;
|
||||
color: #023e8a;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.card .card-value {
|
||||
font-size: 2rem;
|
||||
font-weight: bold;
|
||||
color: #03045e;
|
||||
}
|
||||
|
||||
.card:hover {
|
||||
transform: translateY(-5px);
|
||||
box-shadow: 0 12px 20px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
.placeholder-card {
|
||||
background-color: var(--white);
|
||||
border-radius: 10px;
|
||||
padding: 30px;
|
||||
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.placeholder-card p {
|
||||
font-size: 1.2rem;
|
||||
color: var(--light-blue);
|
||||
}
|
||||
|
||||
/* Hamburger button styles */
|
||||
.hamburger-btn {
|
||||
background: none;
|
||||
border: none;
|
||||
color: var(--dark-blue);
|
||||
font-size: 1.5rem;
|
||||
cursor: pointer;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.mobile-only {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Responsive Design */
|
||||
@media (max-width: 768px) {
|
||||
.mobile-only {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.hamburger-btn {
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
z-index: 101;
|
||||
}
|
||||
|
||||
.sidebar .hamburger-btn {
|
||||
right: 15px;
|
||||
top: 20px;
|
||||
color: var(--dark-blue);
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
position: fixed;
|
||||
height: 100%;
|
||||
transform: translate极(-100%);
|
||||
transition: transform 0.3s ease;
|
||||
}
|
||||
|
||||
.sidebar.active {
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
.logo span, .nav-item span {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.nav-item {
|
||||
justify-content: center;
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
.nav-item i {
|
||||
margin-right: 0;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.logout-btn span {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.greeting-card {
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
.actions-column {
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.datetime-small {
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.icons-container {
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user