Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
DigiTwins4PEDs
Application
Commits
10c2c2cb
Commit
10c2c2cb
authored
Aug 23, 2025
by
Rushikesh Padsala
Browse files
Replace DigiTwins4PEDs.css
parent
8ea2aaf4
Pipeline
#11780
passed with stage
in 7 seconds
Changes
1
Pipelines
1
Show whitespace changes
Inline
Side-by-side
public/CSS/DigiTwins4PEDs.css
View file @
10c2c2cb
/* General Reset */
:root
{
html
,
body
,
#cesiumContainer
{
--accent
:
#22c55e
;
width
:
100%
;
--accent-600
:
#16a34a
;
height
:
100%
;
--accent-contrast
:
#0b2913
;
margin
:
0
;
padding
:
0
;
overflow
:
hidden
;
font-family
:
"Fira Sans"
,
sans-serif
;
background
:
#000
;
top
:
0
;
left
:
0
;
position
:
absolute
;
z-index
:
-1
;
}
}
/* Navbar */
html
,
body
,
#cesiumContainer
{
#Navbar
{
width
:
100%
;
height
:
100%
;
overflow
:
hidden
;
margin
:
0
;
padding
:
0
;
overflow
:
hidden
;
font-family
:
"Fira Sans"
,
sans-serif
;
background
:
#000
;
top
:
0
;
left
:
0
;
position
:
absolute
;
z-index
:
-1
;
}
}
/* Backdrop Styling */
.backdrop
{
.backdrop
{
display
:
inline-block
;
display
:
inline-block
;
background
:
rgba
(
42
,
42
,
42
,
.7
);
background
:
rgba
(
42
,
42
,
42
,
0.7
);
border-radius
:
5px
;
border
:
1px
solid
#444
;
color
:
#fff
;
border-radius
:
5px
;
line-height
:
150%
;
font-size
:
small
;
padding
:
5px
10px
;
border
:
1px
solid
#444
;
box-shadow
:
0
0
10px
1px
rgba
(
0
,
0
,
0
,
.2
);
color
:
#fff
;
line-height
:
150%
;
font-size
:
small
;
padding
:
5px
10px
;
box-shadow
:
0
0
10px
1px
rgba
(
0
,
0
,
0
,
0.2
);
/* Standardized box-shadow */
}
}
/* HFT Stuttgart Credit Logo */
.credit1
,
.credit2
{
.credit1
{
width
:
100px
;
height
:
100px
;
overflow
:
hidden
;
position
:
fixed
;
z-index
:
99999
;
bottom
:
70px
;
width
:
100px
;
box-shadow
:
0
0
10px
1px
rgba
(
0
,
0
,
0
,
.2
);
height
:
100px
;
overflow
:
hidden
;
position
:
fixed
;
z-index
:
99999
;
background
:
url(Images/hft.jpg)
no-repeat
;
background-size
:
100px
;
bottom
:
70px
;
left
:
10px
;
box-shadow
:
0
0
10px
1px
rgba
(
0
,
0
,
0
,
0.2
);
/* Standardized box-shadow */
}
}
.credit1
{
background
:
url(Images/hft.jpg)
no-repeat
;
background-size
:
100px
;
left
:
10px
;}
.credit2
{
background
:
url(Images/email.jpg)
no-repeat
;
background-size
:
100px
;
left
:
120px
;}
/* E-mail Logo */
.credit2
{
width
:
100px
;
height
:
100px
;
overflow
:
hidden
;
position
:
fixed
;
z-index
:
99999
;
background
:
url(Images/email.jpg)
no-repeat
;
background-size
:
100px
;
bottom
:
70px
;
left
:
120px
;
box-shadow
:
0
0
10px
1px
rgba
(
0
,
0
,
0
,
0.2
);
/* Standardized box-shadow */
}
/* Cesium InfoBox */
.cesium-infoBox
{
.cesium-infoBox
{
width
:
80%
;
width
:
80%
;
height
:
auto
;
right
:
5px
;
background
:
rgba
(
0
,
0
,
0
,
.65
);
height
:
auto
;
border-radius
:
10px
;
border
:
1px
solid
#444
;
padding
:
5px
10px
;
color
:
#fff
;
font-size
:
1em
;
float
:
right
;
right
:
5px
;
background
:
rgba
(
0
,
0
,
0
,
0.65
);
border-radius
:
10px
;
border
:
1px
solid
#444
;
padding
:
5px
10px
;
color
:
#fff
;
font-size
:
1em
;
float
:
right
;
}
.cesium-infoBox-title
{
background
:
rgba
(
0
,
0
,
0
,
0
);
font-size
:
1em
;
}
.cesium-infoBox-close
{
z-index
:
99999
;
}
button
.cesium-infoBox-camera
{
display
:
none
;
}
}
.cesium-infoBox-title
{
background
:
transparent
;
font-size
:
1em
;}
.cesium-infoBox-close
{
z-index
:
99999
;}
button
.cesium-infoBox-camera
{
display
:
none
;}
/* Checkbox Container Styling */
#checkboxContainer
{
#checkboxContainer
{
position
:
absolute
;
position
:
absolute
;
z-index
:
1000
;
background
:
rgba
(
42
,
42
,
42
,
.7
);
z-index
:
1000
;
padding
:
8px
;
color
:
#fff
;
border-radius
:
5px
;
border
:
1px
solid
#444
;
box-shadow
:
0
0
10px
rgba
(
0
,
0
,
0
,
.2
);
background
:
rgba
(
42
,
42
,
42
,
0.7
);
padding
:
8px
;
color
:
white
;
border-radius
:
5px
;
border
:
1px
solid
#444
;
box-shadow
:
0
0
10px
rgba
(
0
,
0
,
0
,
0.2
);
/* Standardized box-shadow */
}
}
/* Chart Container Styling */
#chartContainer
{
#chartContainer
{
position
:
absolute
;
display
:
none
;
position
:
absolute
;
background
:
rgba
(
42
,
42
,
42
,
.7
);
background
:
rgba
(
42
,
42
,
42
,
0.7
);
/* Same background as the legend box */
border
:
1px
solid
#444
;
color
:
#fff
;
border-radius
:
5px
;
box-shadow
:
0
0
10px
rgba
(
0
,
0
,
0
,
.2
);
border
:
1px
solid
#444
;
/* Same border as the legend box */
padding
:
10px
;
overflow
:
hidden
;
width
:
100%
;
height
:
400px
;
color
:
white
;
border-radius
:
5px
;
/* Rounded corners */
box-shadow
:
0
0
10px
rgba
(
0
,
0
,
0
,
0.2
);
/* Same box-shadow as the legend box */
padding
:
10px
;
display
:
none
;
/* Hidden by default */
overflow
:
hidden
;
/* Prevent scrollbar */
width
:
100%
;
height
:
400px
;
}
/* Edit Toggle Button */
#editToggle
{
position
:
absolute
;
top
:
10px
;
right
:
10px
;
padding
:
5px
10px
;
border
:
none
;
border-radius
:
5px
;
cursor
:
pointer
;
color
:
white
;
font-size
:
12px
;
}
/* Optional Hover Effect */
#editToggle
:hover
{
opacity
:
0.9
;
}
}
#menu
{
position
:
absolute
;
left
:
10px
;
top
:
10px
;}
/* Select Dropdown for Energy Demand */
#spinner
{
#colorByEndUse
{
width
:
287px
;
height
:
141px
;
overflow
:
hidden
;
position
:
fixed
;
z-index
:
99999
;
margin-top
:
10px
;
background
:
#fff
;
top
:
50%
;
left
:
50%
;
margin-top
:
-50px
;
margin-left
:
-100px
;
box-shadow
:
0
0
10px
1px
#000
;
margin-bottom
:
10px
;
font-size
:
14px
;
padding
:
5px
;
}
/* Nowrap class */
.nowrap
{
white-space
:
nowrap
;
}
/* Cover */
.cover
{
display
:
none
;
position
:
absolute
;
background-color
:
rgba
(
0
,
0
,
0
,
0.75
);
top
:
0
;
left
:
0
;
right
:
0
;
bottom
:
0
;
}
/* Menu Positioning */
#menu
{
position
:
absolute
;
left
:
10px
;
top
:
10px
;
}
/* Media Queries for Responsiveness */
@media
(
max-width
:
768px
)
{
#chartContainer
{
height
:
300px
;
/* Adjust chart height for smaller screens */
}
#checkboxContainer
{
padding
:
5px
;
font-size
:
12px
;
}
#editToggle
{
font-size
:
10px
;
/* Smaller font for smaller screens */
}
}
/* Loading Indicator Styles */
#spinner
{
width
:
287px
;
height
:
141px
;
overflow
:
hidden
;
position
:
fixed
;
z-index
:
99999
;
background-color
:
white
;
top
:
50%
;
left
:
50%
;
margin-top
:
-50px
;
margin-left
:
-100px
;
box-shadow
:
0
0
10px
1px
#000
;
}
}
/* Legend
Box Styling
*/
/* Legend
under left menu
*/
.legend-box
{
.legend-box
{
position
:
absolute
;
/* Make the legend box positioned absolutely */
position
:
fixed
;
left
:
10px
;
top
:
140px
;
width
:
260px
;
top
:
170px
;
/* Adjust the top position to shift it down */
background
:
rgba
(
42
,
42
,
42
,
.7
);
border
:
1px
solid
#444
;
color
:
#fff
;
left
:
10px
;
/* Align it to the left by adjusting this value */
padding
:
10px
;
border-radius
:
5px
;
box-shadow
:
0
0
10px
rgba
(
0
,
0
,
0
,
.2
);
background
:
rgba
(
42
,
42
,
42
,
0.7
);
font-size
:
14px
;
z-index
:
1000
;
border
:
1px
solid
#444
;
}
color
:
#fff
;
.legend-box
h3
{
margin
:
0
;
padding-bottom
:
10px
;
font-size
:
16px
;
color
:
#f9d71c
;}
padding
:
10px
;
.legend-box
ul
{
list-style
:
none
;
padding
:
0
;
margin
:
0
;}
border-radius
:
5px
;
.legend-box
ul
li
{
display
:
flex
;
align-items
:
center
;
margin-bottom
:
5px
;
font-size
:
12px
;}
box-shadow
:
0
0
10px
rgba
(
0
,
0
,
0
,
0.2
);
.legend-color
{
width
:
20px
;
height
:
20px
;
display
:
inline-block
;
margin-right
:
10px
;
border
:
1px
solid
#ccc
;}
width
:
250px
;
font-size
:
14px
;
/* Scenario Selection pill */
}
.scenario-toggle
{
display
:
none
;}
.scenario-panel
{
position
:
fixed
;
top
:
10px
;
left
:
50%
;
transform
:
translateX
(
-50%
);
.legend-box
h3
{
z-index
:
1001
;
width
:
clamp
(
280px
,
35vw
,
420px
);
color
:
#fff
;
user-select
:
none
;
margin
:
0
;
}
padding-bottom
:
10px
;
.scenario-header
{
font-size
:
16px
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
gap
:
12px
;
color
:
#f9d71c
;
/* Optional: Accent color */
padding
:
10px
14px
;
border-radius
:
9999px
;
background
:
rgba
(
42
,
42
,
42
,
.75
);
border
:
1px
solid
#444
;
}
box-shadow
:
0
0
10px
1px
rgba
(
0
,
0
,
0
,
.2
);
cursor
:
pointer
;
}
.legend-box
ul
{
.scenario-title
{
font-weight
:
600
;
letter-spacing
:
.2px
;}
list-style
:
none
;
.chevron
{
display
:
inline-flex
;
align-items
:
center
;
transition
:
transform
.2s
ease
;}
padding
:
0
;
#scenarioToggle
:checked
~
#scenarioPanel
.chevron
{
transform
:
rotate
(
180deg
);}
margin
:
0
;
}
.scenario-content
{
margin-top
:
6px
;
background
:
rgba
(
42
,
42
,
42
,
.75
);
border
:
1px
solid
#444
;
border-radius
:
12px
;
.legend-box
ul
li
{
padding
:
10px
12px
;
overflow
:
hidden
;
max-height
:
0
;
opacity
:
0
;
transition
:
max-height
.26s
ease
,
opacity
.22s
ease
;
display
:
flex
;
}
align-items
:
center
;
#scenarioToggle
:checked
~
#scenarioPanel
.scenario-content
{
max-height
:
260px
;
opacity
:
1
;
}
margin-bottom
:
5px
;
font-size
:
12px
;
/* Sliders – grey track, green thumb */
}
.slider-row
{
display
:
grid
;
grid-template-columns
:
110px
1
fr
50px
;
align-items
:
center
;
gap
:
10px
;
padding
:
6px
0
;
font-size
:
14px
;
.legend-color
{
}
width
:
20px
;
.slider-row
label
{
color
:
#eaeaea
;}
height
:
20px
;
.slider-row
input
[
type
=
"range"
]
{
width
:
100%
;
appearance
:
none
;
background
:
transparent
;
height
:
24px
;}
display
:
inline-block
;
.slider-row
input
[
type
=
"range"
]
::-webkit-slider-runnable-track
{
height
:
6px
;
background
:
#6b7280
;
border-radius
:
9999px
;}
margin-right
:
10px
;
.slider-row
input
[
type
=
"range"
]
::-webkit-slider-thumb
{
border
:
1px
solid
#ccc
;
-webkit-appearance
:
none
;
width
:
18px
;
height
:
18px
;
margin-top
:
-6px
;
border-radius
:
50%
;
background
:
#fff
;
border
:
2px
solid
var
(
--accent-600
);
box-shadow
:
0
0
0
2px
rgba
(
0
,
0
,
0
,
.18
);
cursor
:
pointer
;
}
.slider-row
input
[
type
=
"range"
]
::-moz-range-track
{
height
:
6px
;
background
:
#6b7280
;
border-radius
:
9999px
;}
.slider-row
input
[
type
=
"range"
]
::-moz-range-thumb
{
width
:
18px
;
height
:
18px
;
border-radius
:
50%
;
background
:
#fff
;
border
:
2px
solid
var
(
--accent-600
);
box-shadow
:
0
0
0
2px
rgba
(
0
,
0
,
0
,
.18
);
cursor
:
pointer
;
}
.slider-row
input
[
type
=
"range"
]
:focus-visible
{
box-shadow
:
0
0
0
3px
rgba
(
34
,
197
,
94
,
.35
);
border-radius
:
10px
;}
.slider-value
{
text-align
:
right
;
color
:
#ddd
;}
/* Buttons */
.scenario-actions
{
display
:
flex
;
gap
:
10px
;
justify-content
:
flex-end
;
margin-top
:
6px
;}
.btn
{
padding
:
8px
14px
;
font-size
:
14px
;
border-radius
:
9999px
;
border
:
1px
solid
transparent
;
cursor
:
pointer
;
transition
:
transform
.08s
ease
,
filter
.12s
ease
,
background-color
.12s
ease
,
border-color
.12s
ease
,
color
.12s
ease
,
box-shadow
.12s
ease
;
}
.btn
:active
{
transform
:
translateY
(
1px
);}
.btn
:focus
{
outline
:
none
;
box-shadow
:
0
0
0
3px
rgba
(
34
,
197
,
94
,
.35
);}
.btn-primary
{
background
:
var
(
--accent
);
color
:
var
(
--accent-contrast
);
border-color
:
var
(
--accent-600
);}
.btn-primary
:hover
{
filter
:
brightness
(
.95
);}
.btn-ghost
{
background
:
transparent
;
color
:
#fff
;
border
:
1px
solid
#6b7280
;}
.btn-ghost
:hover
{
box-shadow
:
0
0
0
3px
rgba
(
34
,
197
,
94
,
.35
);}
/* Right slide-out panel */
.scenario-sidepanel
{
position
:
fixed
;
top
:
0
;
right
:
0
;
bottom
:
0
;
width
:
clamp
(
420px
,
34vw
,
600px
);
background
:
rgba
(
10
,
10
,
10
,
.96
);
border-left
:
1px
solid
#2a2a2a
;
box-shadow
:
-16px
0
40px
rgba
(
0
,
0
,
0
,
.45
);
display
:
flex
;
flex-direction
:
column
;
overflow
:
hidden
;
transform
:
translateX
(
100%
);
opacity
:
0
;
pointer-events
:
none
;
transition
:
transform
.28s
ease
,
opacity
.22s
ease
;
z-index
:
1000
;
}
#scenarioToggle
:checked
~
#scenarioSidePanel
{
transform
:
translateX
(
0
);
opacity
:
1
;
pointer-events
:
auto
;}
.sidepanel-header
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
padding
:
12px
14px
;
background
:
rgba
(
255
,
255
,
255
,
.03
);
border-bottom
:
1px
solid
#2a2a2a
;
}
.sidepanel-header
h4
{
margin
:
0
;
font-weight
:
600
;
color
:
#f3f4f6
;}
.sidepanel-close
{
cursor
:
pointer
;
color
:
#e5e7eb
;
font-size
:
16px
;}
.sidepanel-close
:hover
{
color
:
#fff
;}
.sidepanel-body
{
flex
:
1
1
auto
;
display
:
grid
;
grid-template-rows
:
minmax
(
210px
,
1.1
fr
)
minmax
(
110px
,
.7
fr
)
minmax
(
260px
,
1.6
fr
);
gap
:
12px
;
padding
:
12px
;
overflow
:
hidden
;
}
.viz-card
{
background
:
rgba
(
255
,
255
,
255
,
.04
);
border
:
1px
solid
#2a2a2a
;
border-radius
:
12px
;
padding
:
10px
;
display
:
flex
;
flex-direction
:
column
;
min-height
:
0
;
}
.viz-card-title
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
gap
:
12px
;
margin-bottom
:
8px
;
color
:
#e5e7eb
;
font-weight
:
600
;
flex
:
0
0
auto
;
}
.viz-card-title
.title-left
{
display
:
inline-flex
;
align-items
:
center
;
gap
:
8px
;}
.viz-icon
{
width
:
25px
;
height
:
25px
;
object-fit
:
contain
;
filter
:
brightness
(
1.05
);
opacity
:
.95
;}
/* KPI % + triangle row */
.kpi-hero-row
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
gap
:
10px
;
margin-bottom
:
8px
;
}
.kpi-hero
{
font-size
:
44px
;
font-weight
:
900
;
color
:
var
(
--accent
);
line-height
:
1
;
text-align
:
center
;
}
/* Triangle indicator */
.kpi-trend
{
width
:
0
;
height
:
0
;
}
.kpi-trend--up
{
border-left
:
6px
solid
transparent
;
border-right
:
6px
solid
transparent
;
border-bottom
:
10px
solid
var
(
--accent
);
/* green up */
}
.kpi-trend--down
{
border-left
:
6px
solid
transparent
;
border-right
:
6px
solid
transparent
;
border-top
:
10px
solid
#ef4444
;
/* red down */
}
.kpi-trend--pending
{
border-left
:
6px
solid
transparent
;
border-right
:
6px
solid
transparent
;
border-bottom
:
10px
solid
#9ca3af
;
/* neutral placeholder */
}
.viz-placeholder
{
position
:
relative
;
border
:
1px
dashed
rgba
(
229
,
231
,
235
,
.3
);
border-radius
:
8px
;
display
:
grid
;
place-items
:
center
;
color
:
#cbd5e1
;
font-size
:
13px
;
flex
:
1
1
auto
;
min-height
:
70px
;
overflow
:
hidden
;
}
/* Legend pinned inside top-right of the chart area */
.viz-has-overlay
.legend-overlay
{
position
:
absolute
;
top
:
8px
;
right
:
10px
;
background
:
rgba
(
0
,
0
,
0
,
.35
);
border
:
1px
solid
rgba
(
255
,
255
,
255
,
.12
);
border-radius
:
8px
;
padding
:
4px
8px
;
display
:
inline-flex
;
align-items
:
center
;
gap
:
10px
;
backdrop-filter
:
blur
(
2px
);
}
.legend-item
{
display
:
inline-flex
;
align-items
:
center
;
gap
:
4px
;
white-space
:
nowrap
;}
.legend-dot
{
width
:
10px
;
height
:
10px
;
border-radius
:
50%
;
display
:
inline-block
;
vertical-align
:
middle
;}
.legend-dot.pv
{
background
:
var
(
--accent
);}
.legend-dot.grid
{
background
:
#ef4444
;}
/* Summer/Winter segmented toggle */
.segmented-toggle
{
position
:
relative
;
display
:
grid
;
grid-template-columns
:
1
fr
1
fr
;
align-items
:
center
;
gap
:
0
;
width
:
160px
;
height
:
32px
;
border-radius
:
9999px
;
border
:
1px
solid
#2a2a2a
;
background
:
rgba
(
255
,
255
,
255
,
.06
);
overflow
:
hidden
;
box-shadow
:
inset
0
0
0
2px
rgba
(
0
,
0
,
0
,
.15
);
flex
:
0
0
auto
;
}
.segmented-toggle
input
{
display
:
none
;}
.segmented-toggle
label
{
z-index
:
2
;
text-align
:
center
;
line-height
:
28px
;
font-size
:
12px
;
color
:
#e5e7eb
;
user-select
:
none
;
padding
:
0
;
margin
:
0
;
}
.segmented-toggle
.toggle-thumb
{
position
:
absolute
;
top
:
2px
;
left
:
2px
;
width
:
calc
(
50%
-
4px
);
height
:
28px
;
border-radius
:
9999px
;
background
:
var
(
--accent
);
box-shadow
:
0
2px
6px
rgba
(
0
,
0
,
0
,
.35
),
inset
0
0
0
1px
var
(
--accent-600
);
transition
:
transform
.2s
ease
;
z-index
:
1
;
}
.segmented-toggle
#seasonWinter
:checked
~
.toggle-thumb
{
transform
:
translateX
(
100%
);
}
/* Responsive */
@media
(
max-width
:
1400px
){
.scenario-sidepanel
{
width
:
clamp
(
380px
,
36vw
,
560px
);}
}
@media
(
max-width
:
1024px
){
.scenario-sidepanel
{
width
:
clamp
(
340px
,
42vw
,
520px
);}
}
@media
(
max-width
:
900px
){
.scenario-sidepanel
{
width
:
88vw
;}
}
@media
(
max-width
:
768px
){
#chartContainer
{
height
:
300px
;}
#checkboxContainer
{
padding
:
5px
;
font-size
:
12px
;}
.legend-box
{
top
:
200px
;
width
:
220px
;}
.slider-row
{
grid-template-columns
:
100px
1
fr
46px
;}
.segmented-toggle
{
width
:
150px
;
height
:
30px
;}
.segmented-toggle
.toggle-thumb
{
height
:
26px
;}
}
/* --- UI polish: make card-title icons a bit larger --- */
.viz-icon
{
width
:
28px
!important
;
height
:
28px
!important
;
}
}
.credit-bar
{
.credit-bar
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment