►
From YouTube: Fix Dark Mode SCSS color bugs
Description
Issue: https://gitlab.com/gitlab-org/gitlab/-/issues/241970 – MR: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41122
A
So
in
case
you're
watching
this
recording,
we
are
currently
looking
into
and
I'm
just
going
to
stop
the
screen
share
for
a
second
in
order
to
close
all
the
things
that
are
not
relevant
for
this
call
in
order
to
not
have
something
that
we
don't
need
on
the
recording
and
now
we're
fine.
Now,
I
think
I
can
share
my
screen.
A
It
basically
imports
certain
variables
that,
for
example,
basically
flip
all
the
colors
around
you
know
define
some
colors
in
a
different
way
and
then
import
all
of
the
import
all
of
the
application
css,
but
because
we
moved
the
to
do
css
out
here
and
to
do
css
just
imports
the
normal
variables
this
actually
means.
Obviously
we
will
end
up
with
the
wrong
colors.
A
A
A
We
basically
create
like
mixins
and
variables
and
functions
dark
mode
css,
and
then
we
import
that
I'm
not
a
particular
big
fan
of
that,
because
it
will
lead
to
duplicate
duplicate
styles
everywhere
right
and
basically,
we
probably
need
to
write
a
helper.
That
says
you
know
if
this
mode
is
on
import,
that
if
that
mode
is
on
import
that
and
the
other
solution
which
I
would
prefer
is
using
css
variables.
A
This
means
that
basically,
instead
of
doing
using
the
colors
directly,
we
would
make
use
of
css
variables
or
custom
properties,
which
basically
would
mean
we
could
define
certain
colors
and
then
in
dark
mode.
This
color
would
then
be
defined
as
the
one
and
in
in
light
mode
it
would
be
defined
as
the
other
right.
A
The
only
downside
of
that
is,
it
means
when
you're
touching
like
one
of
those
files,
you
basically
would
need
to
migrate
to
this,
but
eventually
this
will
be
the
easier
way
and
probably
the
way
we
should
deal
with
the
dark
mode
because
then
or
we
should
deal
with
themes
and
these
kind
of
things,
because
then
you
just
define
the
styles
once
and
here,
for
example,
it
would
say
I
don't
know
last
child
override
border
style,
so
this
is
like
the
so
this
is.
A
B
So,
instead
of
instead
of
naming
it
based
on
the
the
color
palette,
we
would
give
it
a
a
functional
name
that
abstracts
the
color
away
from
from
it,
and
so
you
reference
that
functional
name
and
and
then
with
the
variables.
The
the
theme
assigns
the
right
color
value
to
that
very
functional
name.
Variable,
correct.
A
It
it
would
have
you
know,
the
problem
is
like:
how
would
we
deal
with
these
blue
ones,
so
functional
name
completely
makes
sense.
Sometimes
you
know
if
you're
like,
I
don't
know
if
you
are
like
have
repeating
where
you
see
it.
So
probably
it
makes
sense
to
define
like
a
to
do
color,
for
example
right.
I
I
just
wonder,
I
think,
a
quick
way
to
to
check
how
it
should
look
like
would
just
be
to
import
the
application.
Is
it
application
dark?
No.
B
A
Yeah
exactly
you're
right.
The
question
is
like:
how
would
we
want
to
deal
with
this
on
on
a
high
level
yeah
here
you
can
see
now
how
it
is
supposed
to
look
right
and
yeah.
I
don't
know
I
I
basically
basically
the
way
I
would
probably
go
about
it
is
the
problem
is
we
would
need
to
define
all
of
these
variables
in
c
e,
in
the
normal
mode
and
in
the
dark
mode,
so
this
would
especially
initially
it
would
be
quite
a
large.
B
That
feel
yeah
and
it
feels
like
you
know
it's
it's
almost
like
a
it's
a
pattern
change,
and
would
you
probably
need
to
go
through
our
front-end
rfc
process?
If
you
want
to
introduce
this
new
pattern?
Yes,.
A
The
other,
the
other
thing
is,
I
think
the
other
pattern
is
hurtful
in
the
sense
as,
as
you
know,
right
now,
I
think
if
you
are
like
in
our
layout
head
layout,
html
harmony,
there
must
be
one
somewhere,
app
views,
layouts,
there's
probably
like
here
this,
like
we
already
have
like
this
conditional
in
here.
I
assume
yeah.
We
have
like
this
conditional.
You
know
if
user
application
theme
equals
gl
doc,
then
use
application.
A
Dark
else
use
this
one,
and
this
would
mean
that
we
basically
in
the
to
do
html
hammer
like
we
would
basically
would
otherwise
need
to
do
like
if
you
know
basically
the
same
same
thing
it
would
it.
It
would
also
mean
that
you
know.
A
It
would
also
mean
that
you
know
that
we
probably
end
up
with,
like
I
don't
know,
to
do
stock
right,
so
it
would
mean
that
we
basically
need
to
recompile
every
that
we
need
to
compile
everything
twice
and
it
to
be
honest,
like
the
pattern
with
the
variables
is
actually
already
does
exist,
for,
as
you
can
see,
does
exist
for.
A
A
I
mean
the
good
thing
is
we
could
also
define
a
fallback,
so
we
wouldn't
need
to
touch
the
normal
theme,
so
we
could
go
like
like
they
did
here.
So
the
way
we
could
go
about
this
is
we,
I
think,
is
wait.
Where
was
it
theme
overwrites
yeah?
So
we
basically
what
we
could
do
is
we
could
go
and
say:
hey.
We
have
the
to-do's
we
are
using,
for
example,
we
are
using,
for
example,
here
blue
50
right
and
we
are
using.
A
I
don't
know
we
can
use
blue50
and
then
we
would
just
need
to
define
the
variables
for
application
dark.
Okay,
for
the
themes,
dock
we
would
just
need
to
define
like
hey.
Where
is
it
we?
Just?
Wouldn't
you
know
blue
50,
and
this
would
be.
A
A
I
I
probably
can
also
go
with
probably
was
complaining
about
this
yeah,
and
that
way
we
would
not
need
to
override
it
in
so
we
that
way,
we
don't
need
to
create
a
dark
theme
and
the
light
theme,
but
we
could
just
go
about.
You
know
basically
replacing
every
one
of
these
with
something
like
that.
Yeah.
C
B
Yes,
I'm
not
a
fan
of
adding
conditionals
everywhere
that
that's
kind
of
like
something
that
I'm
not
not
a
fan
of,
because
eight
makes
the
code
just
more
messy
and
you
know
more
maintenance
prone
and
if
we
can
keep
keep
the
changes
and
limited
to
to
the
styling,
the
style,
rules
and
stuff.
It
feels
like
it's
a
an
easier
migration
path
than
something
else.
A
Yeah,
I
I
completely
agree
because
the
the
migration
path
is
actually
how
you
can
see
here
that
the
background,
for
example,
we
actually
you
know-
and
this
is
like
really
bad-
like
we
actually
defined
the
color
white
right
like
semantics.
Here
we
defined
white
as
a
gray,
all
right,
it's
like
all
right,
so
the
semantics
here
start
to
become
like
really.
B
A
Really
weird
right
and
yeah.
B
Yeah,
I
I
definitely
think
your
your
proposal
of
moving
to
to
more
of
a
functional
naming
convention
is
is,
is
definitely
the
way
forward
specifically
because
of
this,
and
and
even
and
it's
not
just
a
dark
and
and
light
it's
it's
also.
If
you
want
to
have
an
accessible
style
sheet
for
people
with
color
blindness,
you
know
you
might
want
to
have
some
different
themes
and
stuff
so
yeah.
B
However,
it
feels
like
the
the
the
in
between
option
is
the
one
with
providing
the
fullback
variable
so
you're
defining
the
dark,
the
dark
values,
and
that
could
be
an
interim
kind
of
like
solution
that
and
then
we
should
probably
open
the
discussion
about
moving
the
the
kind
of
like
naming
convention
going
forward.
A
A
Where
it's
the
background,
color
or
the
color
of
the
of
the
link
right,
then
you
might
end
up
in
a
weird
spot,
because,
because
you
know
you
you're
using
the
same
color
for
semantically
different
things
by
the
way,
when
I
start
looking
in
into
this,
I
also
found
out
like
hey,
sometimes
so,
for
example,
in
our
actual
themes.
You
know
the
the
only
theme
that
we
really
have
is
the
header
bar
top.
C
A
And
if
you
look
at
that,
it's
like
you
have
like
defined
variables
with
colors,
but
those
are
smashed
together.
You
even
can
see
it
in
the
variable
names
where
it's
like.
You
know,
header
border
color
and
background
color
of
this
thing
in
the
drop
down
or
something
like
that
right.
So
where
things
are
in
order
to
not
find
two
variables,
someone
was
like:
hey,
let's
mesh
these
two
together
because
you
know
and
then
you
end
up,
you
know
overwriting
them,
and
I
don't
know
I
don't
know
I.
A
B
A
B
A
Mean
we
can
put
it
forward
as
a
proposal,
but
I
think
that's
the
cleanest
way
how
to
do
it.
We
define
variables
in
the
in
in
the
application
css,
essentially
right
and
if
they're
not
defined,
we
fall
back
on
the
light.
One
I
mean
in
the
future.
If
we
move
on
with
the
light
one,
we
could
even
remove
the
fallback
right
if
we
can
ensure
that
these
are
defined
yeah
I
mean
another
thing
would
be
that
you
know
one
yeah.
A
A
A
Colors
yeah,
I
already
get
a
stomach
aid
again
because
if
you
search
for
this
color
yeah,
it
is
a
blue
600
right
and
it's
like
it's
weird.
They.
A
Didn't
use
it
here
because,
please
see
read
me:
they
probably
didn't
use
it
in
this
in
this
one
because
they
had
don't
have
it
available
right.
I
don't
know
this
is
where
this
one
could
help
it.
Yeah
again,
it's
it's
weird
that
we
with
application
css,
and
I
think
we
started
to
work
on
the
dark
application
css
when
before
we
were
able
to
use
these
custom
properties,
because
those
custom
properties
are
just
usable
if
you
drop
internet,
explorer,
11
right
and
I
think
the
work
on
the.
C
A
Yeah,
so
I
don't
know
how?
How
do
you
feel
about
how
to
about
defining
these,
like
so.
B
I'm
I'm
conflicted
in
that
to
move
the
objective
of
the
of
the
epic
of
of
migrating
these
files
forward.
We
should
use
the,
I
guess,
the
the
light,
the
lightest
weight
solution
and
but
you
know
the
conflict
comes
in.
Is
it
the
right
thing
for
the
overall
code
base
you
know
so
are
we?
Are
we
sacrificing
short-term
long-term
pain
for
short-term
gain?
B
I
do
like
this
interim
approach
that
we
discussed
more
than
any
of
the
others.
The
others
feel
you
know
duplicating
files.
You
know
having
two
to
do.
Css
files
feels
overkill,
because,
because
a
lot
of
a
lot
of
these
page
files
are
also
small,
yes,
there's
a
couple
that
are
big,
but
a
lot
of
them
are
quite
small,
and
so
just
to
have
two
files
for
the
sake
of
it
feels
like
overkill,
and
I
feel
like
this
is
an
interim
kind
of
like
step.
B
A
B
A
A
Would
also
be
introducing
you
know,
basically
removing
something
like
this.
The
only
thing
I
thought
about
would
be
hey,
let's
maybe
add
like
a
prefix
like
theme,
because
then
even
you
know,
like
variable
theme,
white
probably
looks
better,
even
if
the
color
is
black
right,
yeah
or
a
dark
gray
and
yeah,
and
then
we
can
slowly
migrate.
Our
our
things
towards
this.
A
Cool
then,
let's,
let's
revert
everything
that
happened
here
and
let's
see
if
I
can
graciously
fail
at
a
drag
x.
A
Okay,
we
want
essentially
the
name
right.
Then
we
don't
want.
We
basically
just
want
a
to
z
and
this
and
we
want
numbers.
A
This
looks
pretty
good.
Then
we
can
be
like.
We
basically
want
to
replace
this
with
var
minus
minus.
Then
this
comma.
A
Dollar,
this
yeah,
okay,
this
is
one
one
too
many.
I
think
this
looks
reasonable,
hey
we
want
to
have
var
minus
and
we
want
to
add
like
theme
at
the
beginning,.
B
A
B
A
I'm
with
you
and
then
we
just
add
a
space
so
now
I
just
hope
that
we
don't
okay.
So
I
think
I
think
we
want
to
mainly
do
this
for
colors.
Let's
have
a
look
if
they
in
the
dark
theme
also
overwrite
like
weights,
but
I
don't
think
they
do.
No
there's
no
font
weight
or
anything.
C
A
B
A
A
Oh
maybe
we
should
keep
the
font
weight,
though
right.
So
maybe
the
thing
we
can
search
for
is
font
weight.
A
A
B
A
A
A
B
A
So
I
mean
yeah,
essentially,
ideally,
you
would
need
to
migrate
to
using
the
variables
you
know
everywhere
and,
for
example,
if
you
look
like
gl
grayish
blue
right
like
why
this
is
like.
You
know
we
have
like
typography
right,
but
but
still
it's
like
hey.
We
have
these
definitions
of
things
that
are
then
used
in
more
or
less
not
that
many
places
right.
C
A
It's
always
every
time
we
introduce
such
a
new
palette,
I'm
asking
myself:
why
aren't
we
just
using
gray
right
like
okay?
Let's
try
it,
I
wonder
if
we
can
now,
let's,
let's
bring
out
some
scss
magic,
maybe
scss
mix-ins.
A
A
Can
can
one
loop?
Is
there
like
a
thing
like
a
race
yeah.
B
You
can
there's
maps
and
but
you
can
they've
they've
got
four
loops
each
each.
A
A
Maybe
we
could
do
something
like
you
know,
define
theme
variable
and
then
great,
basically
just
get
a
list
of
all
of
them
right
like
create
gray,
yes,
50
and
so
on.
Right
yep
and
this
would
just
be
include
right,
and
so
how
do
mixin
arguments
work?
Arguments
arguments
this
can
also
have
trailing
commas.
A
Optional
arguments
arbitrary
arguments
here
we
have
it
right,
so
we
have
like
variables.
A
And
then
I'm
just
going
to
take
this
nice
and
it's
three
dots
right.
A
B
A
A
C
A
Each
name
in
write,
meta
keywords:
what's
meta
keywords,
look
how
they
do
it.
C
A
B
No,
I
think,
without
needing
the
the
the
dollar
curly
that
that
should
give
us
the
so
so,
if
name
is
we
we're
gonna
have
to
concatenate
the
the
dollar?
A
A
B
A
I
I
I
think
I
saw
something
like
yeah
whatever.
What
probably
here
is
what
blue
nice
everything
is
blue.
Now,
unexpected
color
name
blue.
B
C
A
So
we
had
the
stack
flow.
This
one
was
the
answer
before
right,
like
somewhere
here:
yeah
colors.
So
what
did
they
do?
A
Color
ranges:
okay.
This
gets
more
interesting,
four
variant
in
okay.
This
is
each.
This
is
nice.
Okay,
this
is
nice
and
good.
Look!
Someone
creates
this
stuff.
It's.
A
It's
already
written
so
for
each
variant
in
the
color
ranges,
or
maybe
let's
do
it.
Maybe
let's
do
it
easier
and
just
do
like
hey
instead
of
the
color
ranges
we
can
just
maybe
do.
A
A
Now
I
need
to
cheat
again:
no,
it
was
where
was
it
used?
Where
did
I
copy
this
file
from
utilities,
and
this
is
how
they
do
it?
Okay,
so
this
is
how
you
build
a
string.
A
A
A
B
C
A
I
think
we
also
need
to
do
this.
I
remember
it
from
yesterday
because
variables
how
they
work,
and
but
that
then
would
mean
we
also.
This
is
actually
the
the
value
right
value
so
and
then
we
need
the
name,
and
we
can
give
the
name
here.
A
A
A
C
C
A
A
Okay
gray,
we
definitely
need
to
do
it
for
the
blues
as
well
right,
yeah
blues.
I,
like
that
name.
A
A
A
C
B
B
A
A
C
A
Indigo
minus-
I
know
someone
used
this
in
some
boards
right,
yeah,
okay,
but
to
be
honest,
like
for
our
variables,
we're
probably
almost
done
right,
like
yeah.
This
is.
A
Okay,
let's
just
double
check:
if
we
have
get
status,
the
easy
way
to
find
out
which
ones
are
defined
should
be
just
cut,
and
then
we
can
grab
for
minus
minus
wall
right.
C
A
A
A
And
then
just
have
one
statement
right.
C
B
B
Well,
what
are
we
defining
we're
defining
variables,
yeah
we're
defining
color
we're
defining
color
range
variables,
so
define
theme,
color
range
variables,
okay
from
from
coloring
wow.
C
A
B
C
A
B
A
C
A
A
B
A
A
So
we
would
just
be
like
at
include
define
theme
variable
and
we
just
would
be
white
white
right
and
then
we
have
white
normal.
Yes,
then
we
have
grey
light.
A
A
Oh
I'm
super
confused.
Now
I
don't
know
what
this
will
end
up
as,
but
let's
let's
check
how
it
will
end
up
so
gray.
500
should
be
in
gray
100.
I
think
this
is
a
reasonably
sized,
mr,
so
let's
reload
and
see
what
happens.
Oh
I'm
so
excited,
oh
man.
If
this
stuff
can
get
me
inside
a
gl
text,
color,
okay,
where's
this
in
the
badge
pill
right.
A
A
A
In
the
in
the
theme.
A
Yeah,
so
how
do
we
do
this
again?
We
do
okay,
backslash
dollar,
and
then
we
have
a
minus
z,
minus
zero,
minus
nine,
and
then
we
have
this
here
and
we
have
that
there
and
we
have
this
here
and
we
have
okay.
This
looks
about
right.
A
A
Boop
and
then
we
just
use
the
same
thing
again,
because
we
don't
want
to
define
things
twice
right,
so
it's
this
and
then
we
close
the
brackets
and
then
we
close
the
line.
Okay,
this
looks
right.
A
A
B
A
A
B
A
Where
do
we
get
another
to
do,
let's,
let's
search
for
to
do
body,
so
we
have
dot.
B
B
A
A
Yeah,
I'm
okay,
so
to
do
body.
So
if
someone
really
mentions
you.
A
Okay,
but
then
in
the
markdown
there
needs
to
be
a
badge
with
a
pill,
no
batch
pill
or
the
p
tag.
So
the
color
of
the
note.
So
this
color,
okay,
okay.
So
if
someone
mentions
you
by
name
right-
and
we
don't
have
any
of
those
notes
here,
so
what
do
we
do?
Do
we
just
impersonate
real,
quick
and
have
a
check?
A
This
is
also,
why
is
this
a
link?
Okay,
we
can
go
on
teesha
and
thiesha
can
imper.
We
impersonate
yesha.
A
A
C
C
A
Okay,
okay,
admin
area
users:
let's
not
take
a
user
who,
who
is
okay,
last
activity
so
sharer?
These
are
all
reported
user.
No
users.
A
C
A
A
A
To
be
honest,
I
I
think
this
is
the
preferable
way,
because
it
has
not
that
much
impact
on
all
of
the
styles.
It
just
has
an
impact.
If
you
move
styles,
the
only
downside
that
I
see
that
we
might
need
to
deal
with
is
and
I've
circumnavigated
around.
This
is
if
someone
uses
like
darken,
which
is
not
used
that
often,
but
if
someone
use
like
darken
or
lighten
or
one
of
these
things
that
manipulate
colors,
it
obviously
doesn't
work
right.
A
So
these
would
be
a
bit
the
weird
ones
right
yeah
then,
basically,
one
has
to
go
and
define
like
colors
for
these,
but
yeah
yeah,
but
you
can
see
it's
not
used
that
often.
B
A
One
of
the
good
things
about
it
is:
if
we,
for
example,
forget
to
define
a
variable
right
like
imagine,
we
don't
have
white
normal
defined
or
something
it
would
just
fall
back
on
this
one.
So
it
would
still
look
odd
in
the
dark
mode,
but
then
you
know
the
people
who
can
care
about
dartmouth.
We
can
move
ahead
with
the
migration
and
if
there
are
certain
variables
that
we
want
to
want
to
add
to
the
theme
you
know
they
can
basically
start
caring
about
this
right.
Yeah.
That's.
B
A
I
would
be
interested
if
it
makes
sense
to
define
like
let's
leave
it
like
that.
I
would
just
wonder
if
we
just
should
call
it
like
instead
of
theme,
gl
text
color,
if
we
should
just
call
it
geo
text,
color
right.
B
A
Okay,
good
sounds
nice.
Yeah,
okay,
get
check
out.
Do
you
have
the
to
do
stock?
Do
you
have
the
issue
issue
handy.
C
A
A
Page,
a
css
file
for
each
theme
we
make
use
of
css
variables
in
order.
A
A
Is
there
anything
you
want
to
add
like
to
commit
message?
I
always
like
writing
a
good
commit
message,
because
then
we
can
also
use
it
just
as
the
pull
request,
description
right,
yeah.
B
I
mean
do
we
need
to
add,
I
mean
we
probably
want
to
explain
the
the
mixing
that
we're
adding
and
it
was
something
else
we
wanted
to
explain
as
well
yeah.
It
doesn't
have
to
be
in
the
comments
necessarily.
A
A
B
Yeah
it's
essentially
our
approach
makes
the
light
thing.
The
fallback
is
the
likely
so
yeah,
so
you
only
you
only
have
we
are
we're
only
defining
variables
for
dark
for
the
dark
theme,
because
the
fallback
is
the
light
field.
A
B
C
C
B
A
B
A
Things
yeah
and
then
we
could
have
all
the
themes.
Okay,
get
mr
cool
yeah.
This
I
will
keep
running.
I
was
working
on
jira
fun,
stuff,
jira.
Integration
is
a
lot
of
fun.
This
is
why
I
have
I
have
to.
If
you
want
to
interact
with
the
jira
cloud,
you
need
to
publish.
A
Yeah,
okay,
cool!
So
let's
add
it
to
that
issue,
and
do
we
want
to
create
an
rfc
around
it
or
should
we
have
a
look
whether
there
is
an
rfc
around
the
you
know
what
I'm
interested
in
just
a
quick,
quick
peek
like
these
ide
themes
when
they
were
introduced
right
copy
pal?
A
This
is
the
path
and
I
don't
know
do
you
know
about
that
cool
feature
that
if
you
are
you
can,
if
you
basically
on
any
page,
that
is
not
a
merge
request.
Page
you
can
press
t
and
then
you
end
up
in
this
really
fast
search.
No.
A
A
Opens
the
search
in
the
merge
request
right,
yeah
yeah
by
the
way
keyboard
shortcuts.
B
A
Why
is
my
there?
We
have
it
again:
okay,
migrate,
dark
theme
to
ucss
variables,
so
this
would
be
interesting
to
see
if
this
maybe
has
like
associated.
B
A
Here
they,
even
you
know,
on
the
yeah
page,
bundles
ide
same
idea,
and
here
they
even
do
it
by
adding
a
certain
class
to
a
thing.
That's
the
only
thing
that
we
might
want
to
change
that
essentially
we're
just
saying
in
the:
where
did
we
define
the
variables
again
themes,
yeah,
so,
except
that
we
could
do
body
dot,
gl,
yeah
yeah,
that
that's
the
only
thing
but
I've
committed
and
pushed
anyway.
I
think
it
makes
more
sense
to
look
into
the
approach
in
general
and
then
yeah
but
yeah.
B
Request,
maybe
we
can
have
a
look
at
that
merch
request
that
introduced
that
file
originally
see
if
there
was
any
conversation
around
this
approach.
A
Yeah,
that's
that's
a
good,
that's
a
good
idea.
A
A
B
A
B
A
B
A
C
A
Okay,
we
can
link
to
this
issue
as
being
prior
art
right.
Yes,
okay,
okay,
cool
cool
yeah.
I
will
update
the
merge
request,
ping,
you
and
ping
all
of
the
peeps
that
you
know
dealt
with
this
before.
I
also
share
it
in
our
front-end
channels
and
then
I
will
hand
it
over
to
you,
because
you
know
impending
doom
parental
leave
and.
A
And
yeah
then
yeah,
you
can
see
it
through
and
yeah
all
right
thanks
ip
thanks
have
a
good
one.
See
you
later.
You
too
bye.