Merge branch 'themes' into 'master'

Overhaul theming system, fix #126

Closes #126

See merge request soapbox-pub/soapbox-fe!39
merge-requests/40/head
Alex Gleason 4 years ago
commit 1162dd5622

Binary file not shown.

Before

Width:  |  Height:  |  Size: 221 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 249 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 148 KiB

@ -1,69 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="63.161953mm"
height="181.12712mm"
viewBox="0 0 63.161953 181.12712"
version="1.1"
id="svg1199"
inkscape:version="0.92.4 (unknown)"
sodipodi:docname="spider.svg">
<defs
id="defs1193" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.35355339"
inkscape:cx="188.63933"
inkscape:cy="154.00309"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1366"
inkscape:window-height="705"
inkscape:window-x="0"
inkscape:window-y="30"
inkscape:window-maximized="1"
inkscape:snap-global="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata1196">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-54.223528,-39.965002)">
<path
style="stroke-width:0.99999994"
d="m 329.96094,151.04883 -7.95132,372.20898 c -30.02705,2.9243 -45.57271,12.92382 -64.25977,32.67188 -25.16762,33.38088 -18.43249,69.4298 -0.4707,100.66992 12.24879,17.03193 32.3984,27.97627 53.07033,34.15036 0,0 -5.52814,0.0857 -11.58984,9.46094 -18.91001,-5.43999 -38.07073,-9.95039 -57.14063,-14.82032 -10.49976,0.9523 -28.58163,18.8274 -36.67969,24.9004 0.27746,13.19067 1.67361,27.14135 3.33008,39.15039 1.1699,-1.57002 0.83916,-3.5804 1.03906,-5.40039 0.9,-10.79003 0.60034,-21.66016 1.99024,-32.41016 9.28,-6.03999 17.7906,-13.20072 26.7207,-19.7207 18.99884,1.97067 39.37112,9.36858 55.91016,13.35156 -0.49,2.41999 -1.38047,5.27974 -4.23047,5.67969 -18.4,4.60002 -36.81969,9.10007 -55.17969,13.83007 -4.86555,6.81697 -23.47884,41.76065 -22.16992,48 3.32807,9.25919 3.76668,29.35751 8.58984,35.70899 -0.65616,-11.27353 -1.26587,-23.12102 -2.88086,-33.41016 4.366,-15.53732 14.77165,-31.85507 21.21094,-44.72851 16.36837,-5.03014 33.6873,-8.93673 49.58008,-11.32032 -0.0299,3.31998 -0.081,6.66013 -0.20117,9.99024 -10.89612,8.5036 -30.45632,23.65603 -40.40821,30.44922 -2.57681,15.80044 -3.38605,33.75066 -4.2207,48.55078 2.50279,8.85582 13.19431,23.74406 18.17156,23.90823 -2.93816,-7.30216 -8.51629,-14.68425 -10.88086,-21.31836 -0.17087,-16.87764 2.99403,-32.98356 3.70114,-48.41015 11.61344,-9.80937 25.4679,-15.10577 35.89062,-24.25 2.26541,6.18864 7.32913,9.97253 10.32813,15.05859 -2.15,3.10001 -5.51922,5.79 -5.94922,9.75 2.88,4.37998 6.60955,8.25101 10.68945,11.54102 -0.85,-3.43 -2.26023,-6.68056 -3.24023,-10.06055 l 6.20117,-7.18945 c 10.18753,5.69922 19.39911,4.81707 28.78906,0.75976 2.12,2.45 4.30149,5.11952 5.27149,8.26953 -0.85,3.26 -2.7418,6.14966 -3.5918,9.42969 4.21,-3.40003 8.09071,-7.32883 11.4707,-11.54883 -0.72,-4.08 -4.4693,-6.80104 -5.27929,-10.79101 3.66,-4.43003 7.97023,-8.42941 10.24023,-13.85938 5.68622,5.4072 34.43902,22.24881 34.94922,26.88086 0.36518,16.19209 3.11897,31.74502 2,46.75 -4.46916,8.68536 -7.12999,16.57554 -14.39063,22.67969 9.90723,0.50906 17.4253,-14.74937 21.52152,-22.69328 -0.18697,-17.91233 -0.74645,-33.39521 -1.16992,-49.66992 -13.47001,-10.57002 -27.16094,-20.89017 -40.46094,-31.66016 0.59,-3.81003 0.49976,-7.6583 0.50977,-11.48828 15.73,4.66001 31.80992,8.14868 47.66992,12.38867 7.58475,10.99663 15.5151,31.43552 20.24023,42.75977 0.43698,13.66208 -3.68079,27.5449 -4.08008,40.14062 1.49998,-1.33999 1.6498,-3.42013 2.17969,-5.24023 1.88197,-11.16719 9.61842,-29.63645 8.13086,-37.92969 -6.21997,-14.23003 -11.95978,-28.75009 -18.42969,-42.83008 -19.30273,-6.68031 -40.27482,-12.85569 -58.39062,-17.73047 -0.65,-1.72002 -1.1801,-3.47951 -1.5,-5.26953 17.78,-3.66999 35.60009,-7.40034 53.33008,-11.32031 5.35892,-0.14205 29.14876,22.09172 28.98047,23.98047 1.30016,6.78634 -2.08415,29.71011 1.61914,33.13086 2.05988,-11.02999 3.41097,-22.17002 5.12109,-33.25 -0.32862,-6.33401 -29.16337,-28.29439 -33.91016,-30.79102 -20.42635,4.13166 -40.67884,9.74123 -59.80078,12.63086 -5.16629,-4.96887 -11.64306,-7.41991 -17.4707,-10.33984 26.33,-1.87998 52.09,-16.02008 66.25,-38.58008 9.5235,-13.96814 12.87637,-29.769 13.1992,-45.79102 0.33714,-20.46694 -8.12112,-40.39069 -21.6211,-55.4707 -18.78284,-17.43524 -31.48782,-23.12017 -55.43945,-26.73828 l 6.93151,-372.80078 z"
id="path1768"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
transform="scale(0.26458333)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.2 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

@ -1,34 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="svg46269" viewBox="0 0 340.00001 394.2857" height="111.27618mm" width="95.955559mm">
<defs id="defs46271">
<linearGradient id="linearGradient46839">
<stop id="stop46841" offset="0" style="stop-color:#904700;stop-opacity:1;"/>
<stop id="stop46843" offset="1" style="stop-color:#904700;stop-opacity:0;"/>
</linearGradient>
<linearGradient id="linearGradient46831">
<stop id="stop46833" offset="0" style="stop-color:#904700;stop-opacity:1;"/>
<stop id="stop46835" offset="1" style="stop-color:#904700;stop-opacity:0;"/>
</linearGradient>
<linearGradient id="linearGradient46823">
<stop id="stop46825" offset="0" style="stop-color:#904700;stop-opacity:1;"/>
<stop id="stop46827" offset="1" style="stop-color:#904700;stop-opacity:0;"/>
</linearGradient>
<radialGradient gradientTransform="matrix(4.9019612,0,0,4.9019612,-600.72836,-1264.1473)" gradientUnits="userSpaceOnUse" r="72.85714" fy="330.93362" fx="152.85715" cy="330.93362" cx="152.85715" id="radialGradient46829" xlink:href="#linearGradient46823"/>
<radialGradient gradientTransform="matrix(3.3636365,0,0,3.3636365,-602.85717,-938.05096)" gradientUnits="userSpaceOnUse" r="62.857143" fy="429.50507" fx="251.42857" cy="429.50507" cx="251.42857" id="radialGradient46837" xlink:href="#linearGradient46831"/>
<radialGradient gradientTransform="matrix(1.7317072,0,0,1.7317072,-145.78397,-287.44272)" gradientUnits="userSpaceOnUse" r="58.57143" fy="470.93369" fx="132.85715" cy="470.93369" cx="132.85715" id="radialGradient46845" xlink:href="#linearGradient46839"/>
</defs>
<metadata id="metadata46274">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<g transform="translate(-8.5714264,-218.07648)" id="layer1">
<circle r="140" cy="358.07648" cx="148.57143" id="path46817" style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient46829);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:20, 5;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"/>
<circle r="105.71429" cy="506.64789" cx="242.85715" id="path46819" style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient46837);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:20, 5;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"/>
<circle r="58.57143" cy="528.07654" cx="84.285713" id="path46821" style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient46845);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:20, 5;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.4 KiB

@ -5,18 +5,6 @@
<meta name="viewport" content="width=device-width, initial-scale=1,user-scalable=no">
<title>Soapbox</title>
<link rel="icon" type="image/png" href="/favicon.png">
<%= htmlWebpackPlugin.tags.headTags.map(t => {
if (t.attributes['href'].startsWith('/packs/css/azure')) t.attributes['data-react-helmet'] = "true";
return t;
}).join("\n ") %>
<%= htmlWebpackPlugin.tags.bodyTags.join("\n ") %>
<script id="css-chunks" type="application/json">[<%=
compilation.getAssets()
.filter(a => a.name.match(/^css\/(.*).css$/))
.map(a => a.name.substr(4, a.name.length-14))
.map(a => `"${a}"`)
.join(',')
%>]</script>
</head>
<body class="app-body">
<noscript>To use Soapbox, please enable JavaScript.</noscript>

@ -20,7 +20,7 @@ const defaultSettings = ImmutableMap({
boostModal: false,
deleteModal: true,
defaultPrivacy: 'public',
theme: 'azure',
themeMode: 'light',
// locale: navigator.language.slice(0, 2) || 'en', // FIXME: Dynamic locales
locale: 'en',

@ -23,6 +23,7 @@ import { fetchSoapboxConfig } from 'soapbox/actions/soapbox';
import { fetchMe } from 'soapbox/actions/me';
import PublicLayout from 'soapbox/features/public_layout';
import { getSettings } from 'soapbox/actions/settings';
import { generateThemeCss } from 'soapbox/utils/theme';
export const store = configureStore();
const hydrateAction = hydrateStore(initialState);
@ -42,12 +43,13 @@ const mapStateToProps = (state) => {
return {
showIntroduction,
me,
theme: settings.get('theme'),
reduceMotion: settings.get('reduceMotion'),
systemFont: settings.get('systemFont'),
dyslexicFont: settings.get('dyslexicFont'),
demetricator: settings.get('demetricator'),
locale: settings.get('locale'),
themeCss: generateThemeCss(state.getIn(['soapbox', 'brandColor'])),
themeMode: settings.get('themeMode'),
};
};
@ -57,21 +59,18 @@ class SoapboxMount extends React.PureComponent {
static propTypes = {
showIntroduction: PropTypes.bool,
me: SoapboxPropTypes.me,
theme: PropTypes.string,
reduceMotion: PropTypes.bool,
systemFont: PropTypes.bool,
dyslexicFont: PropTypes.bool,
demetricator: PropTypes.bool,
locale: PropTypes.string.isRequired,
};
getThemeChunk = theme => {
const cssChunks = JSON.parse(document.getElementById('css-chunks').innerHTML);
return cssChunks.filter(chunk => chunk.startsWith(theme))[0];
themeCss: PropTypes.string,
themeMode: PropTypes.string,
dispatch: PropTypes.func,
};
render() {
const { me, theme, reduceMotion, systemFont, dyslexicFont, demetricator, locale } = this.props;
const { me, themeCss, locale } = this.props;
if (me === null) return null;
const { localeData, messages } = getLocale();
@ -84,12 +83,11 @@ class SoapboxMount extends React.PureComponent {
// return <Introduction />;
// }
const bodyClass = classNames('app-body', {
[`theme-${theme}`]: theme,
'system-font': systemFont,
'no-reduce-motion': !reduceMotion,
'dyslexic': dyslexicFont,
'demetricator': demetricator,
const bodyClass = classNames('app-body', `theme-mode-${this.props.themeMode}`, {
'system-font': this.props.systemFont,
'no-reduce-motion': !this.props.reduceMotion,
'dyslexic': this.props.dyslexicFont,
'demetricator': this.props.demetricator,
});
return (
@ -97,7 +95,7 @@ class SoapboxMount extends React.PureComponent {
<>
<Helmet>
<body className={bodyClass} />
{theme && <link rel='stylesheet' href={`/packs/css/${this.getThemeChunk(theme)}.chunk.css`} />}
{themeCss && <style id='theme' type='text/css'>{`:root{${themeCss}}`}</style>}
</Helmet>
<BrowserRouter>
<ScrollContext>

@ -33,7 +33,7 @@ class AboutPage extends ImmutablePureComponent {
render() {
return (
<div className='content'>
<div className='box-widget'>
<div className='about-page'>
<div
className='rich-formatting'
dangerouslySetInnerHTML={{ __html: this.state.pageHtml }}

@ -73,7 +73,6 @@ class RegistrationForm extends ImmutablePureComponent {
const isLoading = this.state.captchaLoading || this.state.submissionLoading;
return (
<div className='box-widget'>
<SimpleForm onSubmit={this.onSubmit}>
<fieldset disabled={isLoading}>
<div className='simple_form__overlay-area'>
@ -132,7 +131,6 @@ class RegistrationForm extends ImmutablePureComponent {
</div>
</fieldset>
</SimpleForm>
</div>
);
}

@ -19,18 +19,6 @@ const messages = defineMessages({
heading: { id: 'column.preferences', defaultMessage: 'Preferences' },
});
// TODO: Pull dynamically
const themes = {
'azure': 'Azure',
'purple': 'Purple Light',
'purple-dark': 'Purple Dark',
'purple-contrast': 'Purple Contrast',
'halloween': 'Halloween',
'aquatic': 'Aquatic',
'paleblue': 'Pale Blue',
'lime': 'Lime Green',
};
const mapStateToProps = state => ({
settings: state.get('settings'),
});
@ -47,7 +35,7 @@ class Preferences extends ImmutablePureComponent {
onThemeChange = e => {
const { dispatch } = this.props;
dispatch(changeSetting(['theme'], e.target.value));
dispatch(changeSetting(['themeMode'], e.target.value));
}
onDefaultPrivacyChange = e => {
@ -63,9 +51,9 @@ class Preferences extends ImmutablePureComponent {
<SimpleForm>
<FieldsGroup>
<SelectDropdown
label='Site theme'
items={themes}
defaultValue={settings.get('theme')}
label='Theme mode'
items={{ light: 'Light', dark: 'Dark' }}
defaultValue={settings.get('themeMode')}
onChange={this.onThemeChange}
/>
</FieldsGroup>

@ -13,6 +13,12 @@ const mapStateToProps = (state, props) => ({
soapbox: state.get('soapbox'),
});
const wave = (
<svg class='wave' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 889' width='1440px' height='889px' preserveAspectRatio='none'>
<path d='M 0 0 L 0 851.82031 C 115.03104 776.54213 236.097 723.10606 363.20703 691.54492 C 640.06491 622.80164 852.93698 468.14039 954.31055 358.01367 C 1092.1151 208.31032 1206.0509 47.69868 1365.3828 13.457031 C 1391.8162 7.7762737 1416.6827 3.2957237 1440 0.001953125 L 1440 0 L 0 0 z' fill='var(--background-color)' />
</svg>
);
class PublicLayout extends ImmutablePureComponent {
render() {
@ -21,6 +27,8 @@ class PublicLayout extends ImmutablePureComponent {
return (
<div className='public-layout'>
<div className='public-layout__top'>
{wave}
<Header />
<div className='container'>
<Switch>
@ -28,6 +36,7 @@ class PublicLayout extends ImmutablePureComponent {
<Route exact path='/about/:slug?' component={AboutPage} />
</Switch>
</div>
</div>
<Footer />
<NotificationsContainer />
</div>

@ -48,18 +48,6 @@ class Header extends ImmutablePureComponent {
<NavLink to='/search' activeClassName='active'>
<FormattedMessage id='search_results.top' defaultMessage='Top' />
</NavLink>
{/*<NavLink to='/search/gabs' activeClassName='active'>
<FormattedMessage id='search_results.statuses' defaultMessage='Posts' />
</NavLink>
<NavLink to='/search/people' activeClassName='active'>
<FormattedMessage id='search_results.accounts' defaultMessage='People' />
</NavLink>
<NavLink to='/search/hashtags' activeClassName='active'>
<FormattedMessage id='search_results.hashtags' defaultMessage='Hashtags' />
</NavLink>
<NavLink to='/search/groups' activeClassName='active'>
<FormattedMessage id='search_results.groups' defaultMessage='Groups' />
</NavLink>*/}
</div>
</div>
</div>

@ -59,11 +59,9 @@ class ComposeModal extends ImmutablePureComponent {
<IconButton className='compose-modal__close' title={intl.formatMessage(messages.close)} icon='times' onClick={this.onClickClose} size={20} />
</div>
<div className='compose-modal__content compose-modal__content--scroll'>
<div className='timeline-compose-block'>
<ComposeFormContainer />
</div>
</div>
</div>
);
}

@ -0,0 +1,23 @@
import { Map as ImmutableMap } from 'immutable';
const hex2rgb = c => c.substr(1).match(/../g).map(x => + `0x${x}`);
export const generateThemeCss = brandColor => {
if (!brandColor) return null;
return themeDataToCss(brandColorToThemeData(brandColor));
};
export const brandColorToThemeData = brandColor => {
const [ r, g, b ] = hex2rgb(brandColor);
return ImmutableMap({
'brand-color-r': r,
'brand-color-g': g,
'brand-color-b': b,
});
};
export const themeDataToCss = themeData => (
themeData
.entrySeq()
.reduce((acc, cur) => acc + `--${cur[0]}:${cur[1]};`, '')
);

@ -1,19 +1,15 @@
// NEW GAB SPECIFIC MIXINS
// THEME MIXINS
// standard container drop shadow
@mixin light-theme-shadow {box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.1);}
@mixin standard-panel-shadow {
box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.1);
}
// common properties for all standard containers
@mixin gab-container-standards {
@mixin standard-panel {
@include standard-panel-shadow;
border-radius: 10px;
background: $gab-background-container;
$light-theme: false !default;
@if $light-theme {
@include light-theme-shadow;
background: $gab-background-container-light;
}
background: var(--foreground-color);
}
// SHORTCUTS
@ -24,7 +20,6 @@
&:-moz-placeholder {color: $color;}
}
// OLDER MIXINS
@mixin avatar-radius {
border-radius: 50%;
background: transparent no-repeat;
@ -44,18 +39,19 @@
outline: 0;
box-sizing: border-box;
width: 100%;
border: 1px $gab-placeholder-accent solid;
box-shadow: none;
font-family: inherit;
background: $nav-ui-search-bg-color;
color: $nav-ui-highlight-color;
background: var(--background-color);
color: var(--highlight-text-color);
margin: 0;
border-radius: 4px;
border-radius: 999px;
border: 0;
padding-left: 15px;
// Chrome does not like these concatinated together
&::placeholder {color: $gab-placeholder-accent;}
&:-ms-input-placeholder {color: $gab-placeholder-accent;}
&::-ms-input-placeholder {color: $gab-placeholder-accent;}
&::placeholder {color: var(--primary-text-color-faint);}
&:-ms-input-placeholder {color: var(--primary-text-color-faint);}
&::-ms-input-placeholder {color: var(--primary-text-color-faint);}
&::-moz-focus-inner {
border: 0;
@ -72,19 +68,18 @@
@include font-size(12);
@include line-height(14);
@include font-weight(normal);
background: $gab-background-container;
border-radius: 4px;
border: 1px solid $gab-placeholder-accent;
background: var(--background-color);
border-radius: 6px;
padding: 8px 10px 17px;
margin: 4px 0 0;
color: $gab-secondary-text;
color: var(--primary-text-color-faint);
box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.5);
h4 {
@include font-size(14);
@include line-height(16);
@include font-weight(bold);
color: #fff;
color: var(--primary-text-color);
}
ul {
@ -92,7 +87,7 @@
li {
margin: 0 0 2px;
em {color: $nav-ui-highlight-color;}
em {color: var(--brand-color);}
}
}
}

File diff suppressed because it is too large Load Diff

@ -1,7 +1,7 @@
$black-emojis: '8ball' 'ant' 'back' 'black_circle' 'black_heart' 'black_large_square' 'black_medium_small_square' 'black_medium_square' 'black_nib' 'black_small_square' 'bomb' 'bowling' 'bust_in_silhouette' 'busts_in_silhouette' 'camera' 'camera_with_flash' 'clubs' 'copyright' 'curly_loop' 'currency_exchange' 'dark_sunglasses' 'eight_pointed_black_star' 'electric_plug' 'end' 'female-guard' 'film_projector' 'fried_egg' 'gorilla' 'guardsman' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'hocho' 'hole' 'joystick' 'kaaba' 'lower_left_ballpoint_pen' 'lower_left_fountain_pen' 'male-guard' 'microphone' 'mortar_board' 'movie_camera' 'musical_score' 'on' 'registered' 'soon' 'spades' 'speaking_head_in_silhouette' 'spider' 'telephone_receiver' 'tm' 'top' 'tophat' 'turkey' 'vhs' 'video_camera' 'video_game' 'water_buffalo' 'waving_black_flag' 'wavy_dash';
%white-emoji-outline {
filter: drop-shadow(1px 1px 0 $white) drop-shadow(-1px 1px 0 $white) drop-shadow(1px -1px 0 $white) drop-shadow(-1px -1px 0 $white);
filter: drop-shadow(1px 1px 0 #ffffff) drop-shadow(-1px 1px 0 #ffffff) drop-shadow(1px -1px 0 #ffffff) drop-shadow(-1px -1px 0 #ffffff);
transform: scale(.71);
}

@ -0,0 +1,654 @@
.card {
& > a {
display: block;
text-decoration: none;
color: inherit;
box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
@media screen and (max-width: $no-gap-breakpoint) {
box-shadow: none;
}
&:hover,
&:active,
&:focus {
.card__bar {
background: var(--brand-color-med);
}
}
}
&__img {
height: 130px;
position: relative;
background: var(--background-color);
border-radius: 4px 4px 0 0;
img {
display: block;
width: 100%;
height: 100%;
margin: 0;
object-fit: cover;
border-radius: 4px 4px 0 0;
}
@media screen and (max-width: 600px) {
height: 200px;
}
@media screen and (max-width: $no-gap-breakpoint) {
display: none;
}
}
&__bar {
position: relative;
padding: 15px;
display: flex;
justify-content: flex-start;
align-items: center;
background: var(--brand-color-faint);
border-radius: 0 0 4px 4px;
@media screen and (max-width: $no-gap-breakpoint) {
border-radius: 0;
}
.avatar {
flex: 0 0 auto;
width: 48px;
height: 48px;
padding-top: 2px;
img {
width: 100%;
height: 100%;
display: block;
margin: 0;
border-radius: 4px;
background: var(--background-color);
object-fit: cover;
}
}
.display-name {
margin-left: 15px;
text-align: left;
strong {
font-size: 15px;
color: var(--primary-text-color);
font-weight: 500;
overflow: hidden;
text-overflow: ellipsis;
}
span {
display: block;
font-size: 14px;
color: var(--primary-text-color-faint);
font-weight: 400;
overflow: hidden;
text-overflow: ellipsis;
}
}
}
}
.pagination {
padding: 30px 0;
text-align: center;
overflow: hidden;
a,
.current,
.newer,
.older,
.page,
.gap {
font-size: 14px;
color: var(--primary-text-color);
font-weight: 500;
display: inline-block;
padding: 6px 10px;
text-decoration: none;
}
.current {
background: var(--foreground-color);
border-radius: 100px;
color: var(--primary-text-color);
cursor: default;
margin: 0 10px;
}
.gap {
cursor: default;
}
.older,
.newer {
text-transform: uppercase;
color: var(--primary-text-color-faint);
}
.older {
float: left;
padding-left: 0;
.fa {
display: inline-block;
margin-right: 5px;
}
}
.newer {
float: right;
padding-right: 0;
.fa {
display: inline-block;
margin-left: 5px;
}
}
.disabled {
cursor: default;
color: var(--primary-text-color);
}
@media screen and (max-width: 700px) {
padding: 30px 20px;
.page {
display: none;
}
.newer,
.older {
display: inline-block;
}
}
}
.nothing-here {
background: var(--brand-color-med);
box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
color: var(--primary-text-color-faint);
font-size: 14px;
font-weight: 500;
text-align: center;
display: flex;
justify-content: center;
align-items: center;
cursor: default;
border-radius: 4px;
padding: 20px;
min-height: 30vh;
&--under-tabs {
border-radius: 0 0 4px 4px;
}
&--flexible {
box-sizing: border-box;
min-height: 100%;
}
}
.account-role {
display: inline-block;
padding: 4px 6px;
cursor: default;
border-radius: 3px;
font-size: 12px;
line-height: 12px;
font-weight: 500;
color: var(--background-color);
background-color: rgba(var(--background-color-rgb), 0.1);
border: 1px solid rgba(var(--background-color-rgb), 0.5);
&.moderator {
color: $success-green;
background-color: rgba($success-green, 0.1);
border-color: rgba($success-green, 0.5);
}
&.admin {
color: lighten($error-red, 12%);
background-color: rgba(lighten($error-red, 12%), 0.1);
border-color: rgba(lighten($error-red, 12%), 0.5);
}
}
.account__header__fields {
padding: 0;
margin: 15px -15px -15px;
border: 0 none;
border-top: 1px solid var(--brand-color-med);
border-bottom: 1px solid var(--brand-color-med);
font-size: 14px;
line-height: 20px;
dl {
display: flex;
border-bottom: 1px solid var(--brand-color-med);
}
dt,
dd {
box-sizing: border-box;
padding: 14px;
text-align: center;
max-height: 48px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
dt {
font-weight: 500;
width: 120px;
flex: 0 0 auto;
color: var(--primary-text-color-faint);
background: rgba(var(--background-color-rgb), 0.5);
}
dd {
flex: 1 1 auto;
color: var(--primary-text-color-faint);
}
a {
color: var(--highlight-text-color);
text-decoration: none;
&:hover,
&:focus,
&:active {
text-decoration: underline;
}
}
.verified {
border: 1px solid rgba($valid-value-color, 0.5);
background: rgba($valid-value-color, 0.25);
a {
color: $valid-value-color;
font-weight: 500;
}
&__mark {
color: $valid-value-color;
}
}
dl:last-child {
border-bottom: 0;
}
}
.directory__tag .trends__item__current {
width: auto;
}
.pending-account {
&__header {
color: var(--primary-text-color-faint);
a {
color: var(--background-color);
text-decoration: none;
&:hover,
&:active,
&:focus {
text-decoration: underline;
}
}
strong {
color: var(--primary-text-color);
font-weight: 700;
}
}
&__body {
margin-top: 10px;
}
}
.account {
padding: 10px;
&:not(:last-of-type) {
border-bottom: 1px solid var(--brand-color-med);
}
&.compact {
padding: 0;
border-bottom: 0;
.account__avatar-wrapper {
margin-left: 0;
}
}
.account__display-name {
flex: 1 1 auto;
display: block;
color: var(--primary-text-color-faint);
overflow: hidden;
text-decoration: none;
font-size: 14px;
}
}
.account__wrapper {
display: flex;
}
.account__avatar-wrapper {
float: left;
margin-right: 12px;
}
.account__avatar {
@include avatar-radius;
position: relative;
background-color: var(--brand-color-faint);
&-inline {
display: inline-block;
vertical-align: middle;
margin-right: 5px;
}
&-composite {
@include avatar-radius;
overflow: hidden;
& > div {
@include avatar-radius;
float: left;
position: relative;
box-sizing: border-box;
}
}
}
a .account__avatar {
cursor: pointer;
}
.account__avatar-overlay {
@include avatar-size(48px);
&-base {
@include avatar-radius;
@include avatar-size(36px);
}
&-overlay {
@include avatar-radius;
@include avatar-size(24px);
position: absolute;
bottom: 0;
right: 0;
z-index: 1;
}
}
.account__relationship {
height: auto;
padding: 0 0 0 5px;
position: relative;
.dismiss-account-btn {
display: block;
margin-bottom: 5px;
}
}
.account__reciprocal_follow_message {
padding: 0 5px;
color: var(--primary-text-color-faint);
text-align: center;
}
.account__disclaimer {
padding: 10px;
border-top: 1px solid var(--brand-color-med);
color: var(--primary-text-color);
strong {
font-weight: 500;
@each $lang in $cjk-langs {
&:lang(#{$lang}) {
font-weight: 700;
}
}
}
a {
font-weight: 500;
color: inherit;
text-decoration: underline;
&:hover,
&:focus,
&:active {
text-decoration: none;
}
}
}
.account__action-bar {
border-top: 1px solid var(--brand-color-med);
border-bottom: 1px solid var(--brand-color-med);
line-height: 36px;
overflow: hidden;
flex: 0 0 auto;
display: flex;
}
.account__action-bar-dropdown {
padding: 10px;
.icon-button {
vertical-align: middle;
}
.dropdown--active {
.dropdown__content.dropdown__right {
left: 6px;
right: initial;
}
&::after {
bottom: initial;
margin-left: 11px;
margin-top: -7px;
right: initial;
}
}
}
.account__action-bar-links {
display: flex;
flex: 1 1 auto;
line-height: 18px;
text-align: center;
}
.account__action-bar__tab {
text-decoration: none;
overflow: hidden;
flex: 0 1 100%;
border-right: 1px solid var(--brand-color-med);
padding: 10px 0;
border-bottom: 4px solid transparent;
&.active {
border-bottom: 4px solid var(--brand-color);
}
& > span {
display: block;
text-transform: uppercase;
font-size: 11px;
color: var(--primary-text-color-faint);
}
strong {
display: block;
font-size: 15px;
font-weight: 500;
color: var(--primary-text-color);
@each $lang in $cjk-langs {
&:lang(#{$lang}) {
font-weight: 700;
}
}
}
}
.account-authorize {
padding: 14px 10px;
.detailed-status__display-name {
display: block;
margin-bottom: 15px;
overflow: hidden;
}
}
.account-authorize__avatar {
float: left;
margin-right: 10px;
}
// TEMPORARY - need a default size for the avatars for now
// They are sized individually all over the application and need to change with breakpoints as well
// Might create a mixin to accept the size attribute and apply the various properties where necessary
.account__avatar {
width: 56px;
height: 56px;
background-size: cover;
}
.account-gallery__container {
display: flex;
flex-wrap: wrap;
padding: 4px 2px;
}
.account-gallery__item {
border: 0;
box-sizing: border-box;
display: block;
position: relative;
border-radius: 4px;
overflow: hidden;
margin: 2px;
a {
background: var(--brand-color-faint);
}
&__icons {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 24px;
}
}
.account--panel {
background: var(--brand-color-faint);
border-top: 1px solid var(--brand-color-med);
border-bottom: 1px solid var(--brand-color-med);
display: flex;
flex-direction: row;
padding: 10px 0;
}
.account__section-headline {
background: var(--brand-color-faint);
button,
a {
flex: none;
padding: 18px 15px;
font-size: 16px;
font-weight: 600;
&.active {
&::before,
&::after {
border-color: transparent transparent var(--foreground-color);
}
}
}
}
.account__moved-note {
padding: 14px 10px;
padding-bottom: 16px;
background: var(--brand-color-faint);
border-top: 1px solid var(--brand-color-med);
border-bottom: 1px solid var(--brand-color-med);
&__message {
position: relative;
margin-left: 58px;
color: var(--primary-text-color);
padding: 8px 0;
padding-top: 0;
padding-bottom: 4px;
font-size: 14px;
> span {
display: block;
overflow: hidden;
text-overflow: ellipsis;
}
}
&__icon-wrapper {
left: -26px;
position: absolute;
}
.detailed-status__display-avatar {
position: relative;
}
.detailed-status__display-name {
margin-bottom: 0;
}
}
.relationship-tag {
color: var(--primary-text-color);
margin-bottom: 4px;
display: block;
vertical-align: top;
background-color: var(--background-color);
text-transform: uppercase;
font-size: 11px;
font-weight: 500;
padding: 4px;
border-radius: 4px;
opacity: 0.7;
&:hover {
opacity: 1;
}
}

@ -1,50 +1,69 @@
@import 'soapbox/mixins';
@import 'soapbox/variables';
@import 'soapbox/fonts';
@import 'soapbox/reset';
// @import 'soapbox/scrollbars';
@import 'soapbox/basics';
@import 'soapbox/containers';
@import 'soapbox/lists';
@import 'soapbox/footer';
@import 'soapbox/compact_header';
@import 'soapbox/widgets';
@import 'soapbox/forms';
@import 'soapbox/accounts';
@import 'soapbox/stream_entries';
@import 'soapbox/boost';
// NOTE - In the process of stripping this giant file into individual components (below)
@import 'soapbox/components';
@import 'mixins';
@import 'themes';
@import 'variables';
@import 'fonts';
@import 'reset';
@import 'basics';
@import 'containers';
@import 'lists';
@import 'footer';
@import 'compact_header';
@import 'widgets';
@import 'forms';
@import 'accounts';
@import 'stream_entries';
@import 'boost';
@import 'loading';
@import 'ui';
@import 'polls';
@import 'introduction';
@import 'emoji_picker';
@import 'about';
@import 'tables';
@import 'dashboard';
@import 'rtl';
@import 'accessibility';
@import 'donations';
@import 'dyslexic';
@import 'demetricator';
@import 'pro';
// COMPONENTS
@import 'soapbox/components/buttons';
@import 'soapbox/components/inputs';
@import 'soapbox/components/tabs-bar';
@import 'soapbox/components/dropdown-menu';
@import 'soapbox/components/modal';
@import 'soapbox/components/account-header';
@import 'soapbox/components/user-panel';
@import 'soapbox/components/compose-form';
@import 'soapbox/components/group-card';
@import 'soapbox/components/group-detail';
@import 'soapbox/components/group-form';
@import 'soapbox/components/group-sidebar-panel';
@import 'soapbox/components/sidebar-menu';
@import 'soapbox/components/hotkeys-modal';
@import 'soapbox/components/emoji-reacts';
@import 'soapbox/components/detailed-status';
@import 'soapbox/polls';
@import 'soapbox/introduction';
@import 'soapbox/emoji_picker';
@import 'soapbox/about';
@import 'soapbox/tables';
@import 'soapbox/admin';
@import 'soapbox/dashboard';
@import 'soapbox/rtl';
@import 'soapbox/accessibility';
@import 'soapbox/donations';
@import 'soapbox/dyslexic';
@import 'soapbox/demetricator';
@import 'soapbox/pro';
@import 'components/buttons';
@import 'components/inputs';
@import 'components/tabs-bar';
@import 'components/dropdown-menu';
@import 'components/modal';
@import 'components/account-header';
@import 'components/user-panel';
@import 'components/compose-form';
@import 'components/group-card';
@import 'components/group-detail';
@import 'components/group-form';
@import 'components/group-sidebar-panel';
@import 'components/sidebar-menu';
@import 'components/hotkeys-modal';
@import 'components/emoji-reacts';
@import 'components/status';
@import 'components/reply-indicator';
@import 'components/detailed-status';
@import 'components/list-forms';
@import 'components/media-gallery';
@import 'components/notification';
@import 'components/display-name';
@import 'components/columns';
@import 'components/search';
@import 'components/react-toggle';
@import 'components/getting-started';
@import 'components/navigation-bar';
@import 'components/promo-panel';
@import 'components/drawer';
@import 'components/timeline-queue-header';
@import 'components/badge';
@import 'components/trends';
@import 'components/wtf-panel';
@import 'components/profile-info-panel';
@import 'components/setting-toggle';
@import 'components/spoiler-button';
@import 'components/media-spoiler';
@import 'components/error-boundary';

@ -1,88 +0,0 @@
@import 'soapbox-light/variables';
// $gab-brand-default: lighten(#149dfb, 10%);
$gab-brand-default: #0482d8;
$gab-background-base-light: #f2f3f6;
$gab-background: $gab-background-base-light;
$ui-base-color: #d9f2f9;
$ui-highlight-color: $gab-brand-default;
// $nav-ui-background-color: #000;
$nav-ui-highlight-color: #149dfb;
$ui-base-lighter-color: #b0c0cf;
@import 'application';
@import 'soapbox-light/diff';
.tabs-bar__link {
font-weight: bold;
transition: 0.1s;
outline: none;
// &.active {
// color: darken(#04d8c4, 40%);
// }
//
// &:hover {
// color: darken(#04d8c4, 60%);
// }
&::before {
// background-color: darken($nav-ui-highlight-color, 10%);
bottom: auto;
opacity: 0;
height: 15px;
border-radius: 999px;
z-index: -1;
width: calc(100% + 20px);
margin-left: -12px;
@media screen and (max-width: 895px) {
height: 0;
border-radius: 3px 3px 0 0;
bottom: 0;
}
}
&.active::before,
&:hover::before {
height: 30px;
opacity: 1;
@media screen and (max-width: 895px) {
height: 7px;
width: 36px;
margin: 0;
}
}
}
.tabs-bar__split--left:hover .tabs-bar__link {
&::before {
height: 15px;
opacity: 0;
@media screen and (max-width: 895px) {
height: 0;
}
}
&:hover::before {
height: 30px;
opacity: 1;
@media screen and (max-width: 895px) {
height: 7px;
}
}
}
.search__input {
border-radius: 999px;
border: 0;
padding-left: 15px;
}
.search__icon .fa {
right: 8px;
}

@ -23,8 +23,8 @@ body {
font-feature-settings: "kern";
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-webkit-tap-highlight-color: transparent;
color: #fff;
background-color: $gab-background-base;
color: var(--primary-text-color);
background-color: var(--background-color);
&.system-font {
// system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)
@ -37,8 +37,7 @@ body {
// Fira Sans => Firefox OS
// Droid Sans => Older Androids (<4.0)
// Helvetica Neue => Older macOS <10.11
// $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", $font-sans-serif, sans-serif;
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
}
&.app-body {
@ -54,7 +53,7 @@ body {
}
&.lighter {
background: $ui-base-color;
background: var(--brand-color-med);
}
&.with-modals {
@ -72,7 +71,7 @@ body {
}
&.embed {
background: lighten($ui-base-color, 4%);
background: var(--brand-color-faint);
margin: 0;
padding-bottom: 0;
@ -85,7 +84,7 @@ body {
}
&.admin {
background: darken($ui-base-color, 4%);
background: var(--brand-color-med);
position: fixed;
width: 100%;
height: 100%;
@ -95,8 +94,8 @@ body {
&.error {
position: absolute;
text-align: center;
color: $darker-text-color;
background: $ui-base-color;
color: var(--primary-text-color-faint);
background: var(--brand-color-med);
width: 100%;
height: 100%;
padding: 0;
@ -127,13 +126,9 @@ body {
}
}
button {
font-family: inherit;
cursor: pointer;
&:focus {
outline: none;
}
.app-body {
-webkit-overflow-scrolling: touch;
-ms-overflow-style: -ms-autohiding-scrollbar;
}
.app-holder {
@ -160,15 +155,15 @@ button {
}
::selection {
background: $gab-brand-default;
color: $white;
background: var(--highlight-text-color);
color: #ffffff;
}
.explanation-box {
color: $primary-text-color;
color: var(--primary-text-color);
padding: 15px 20px;
font-size: 14px;
background-color: rgba($highlight-text-color, .1);
background-color: var(--brand-color-faint);
margin: 5px 20px;
border-radius: 8px;
@ -186,11 +181,155 @@ button {
}
a {
color: $highlight-text-color;
color: var(--brand-color-hicontrast);
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
}
button {
font-family: inherit;
cursor: pointer;
&:focus {
outline: none;
}
}
.button {
background-color: var(--brand-color);
border: 10px none;
border-radius: 4px;
box-sizing: border-box;
color: #fff;
cursor: pointer;
display: inline-block;
font-family: inherit;
font-size: 14px;
font-weight: 500;
height: 36px;
letter-spacing: 0;
line-height: 36px;
overflow: hidden;
padding: 0 16px;
position: relative;
text-align: center;
text-decoration: none;
text-overflow: ellipsis;
white-space: nowrap;
width: auto;
transition: 0.2s;
&:active,
&:focus,
&:hover {
background-color: var(--brand-color-hicontrast);
}
&--destructive {
transition: none;
&:active,
&:focus,
&:hover {
background-color: $error-red;
transition: none;
}
}
&--small {
font-size: 13px;
height: auto;
line-height: normal;
padding: 4px 8px;
}
&:disabled,
&.disabled {
background-color: var(--brand-color-med);
cursor: default;
}
&::-moz-focus-inner {
border: 0;
}
&::-moz-focus-inner,
&:focus,
&:active {
outline: 0 !important;
}
&.button-alternative {
color: var(--primary-text-color);
background: var(--brand-color);
&:active,
&:focus,
&:hover {
background-color: var(--brand-color);
}
}
&.button-alternative-2 {
background: var(--brand-color-med);
&:active,
&:focus,
&:hover {
background-color: var(--brand-color-faint);
}
}
&.button-secondary {
color: var(--primary-text-color-faint);
background: transparent;
padding: 3px 15px;
border: 1px solid var(--brand-color);
&:active,
&:focus,
&:hover {
border-color: var(--brand-color);
color: var(--primary-text-color);
}
&:disabled {
opacity: 0.5;
}
}
&.button--block {
display: block;
width: 100%;
}
}
noscript {
text-align: center;
img {
width: 200px;
opacity: 0.5;
animation: flicker 4s infinite;
}
div {
font-size: 14px;
margin: 30px auto;
color: var(--primary-text-color-faint);
max-width: 400px;
a {
color: var(--highlight-text-color);
text-decoration: underline;
&:hover {
text-decoration: none;
}
}
}
}

File diff suppressed because one or more lines are too long

@ -2,7 +2,7 @@
h1 {
font-size: 24px;
line-height: 28px;
color: $darker-text-color;
color: var(--primary-text-color-faint);
font-weight: 500;
margin-bottom: 20px;
padding: 0 10px;
@ -20,7 +20,7 @@
small {
font-weight: 400;
color: $secondary-text-color;
color: var(--primary-text-color-faint);
}
img {

@ -18,7 +18,7 @@
overflow: hidden;
height: 350px;
position: relative;
background: darken($ui-base-color, 4%);
background: var(--brand-color-med);
@media screen and (max-width: 895px) {height: 225px;}
&--none {height: 125px;}
@ -36,20 +36,20 @@
min-height: 74px;
width: 100%;
position: relative;
background: lighten($ui-base-color, 4%);
background: var(--brand-color-med);
@media (min-width: 895px) {height: 74px;}
}
&__avatar {
display: block;
position: absolute;
border: 5px solid lighten($ui-base-color, 4%);
border: 5px solid var(--brand-color-faint);
left: 0;
top: -90px;
border-radius: 50%;
height: 200px;
width: 200px;
background-color: darken($ui-base-color, 8%);
background-color: var(--foreground-color);
// NOTE - patch fix for avatar size. Wrapper may not be needed when I do polish up on the page
.account__avatar {
@ -57,6 +57,7 @@
height: 200px;
background-size: 200px 200px;
}
@media screen and (max-width: 895px) {
top: -45px;
left: 10px;
@ -99,18 +100,23 @@
margin-left: auto;
.icon-button {
border: 1px solid lighten($ui-base-color, 12%);
border: 1px solid var(--brand-color-med);
border-radius: 4px;
box-sizing: content-box;
padding: 2px;
> div {
line-height: 31px !important;
}
}
.button { margin-right: 10px; }
}
&__links {
display: flex;
font-size: 14px;
color: $darker-text-color;
color: var(--primary-text-color-faint);
@media screen and (max-width: 895px) {
justify-content: center;
flex-wrap: wrap;
@ -127,7 +133,7 @@
display: block;
&:first-of-type {
color: $primary-text-color;
color: var(--primary-text-color);
font-size: 20px;
font-weight: 800;
line-height: 24px;
@ -138,7 +144,7 @@
}
&:last-of-type {
color: $ui-secondary-color;
color: var(--primary-text-color-faint);
font-size: 12px;
line-height: 14px;
padding-top: 2px;
@ -147,7 +153,7 @@
&:hover,
&.active {
border-bottom: 2px solid $primary-text-color;
border-bottom: 2px solid var(--primary-text-color);
}
&.score {border-bottom: 0 !important;}
}
@ -156,7 +162,7 @@
@media screen and (max-width: 895px) {
.account-mobile-container {
display: block;
background: lighten($ui-base-color, 4%);
background: var(--brand-color-faint);
margin-top: 10px;
position: relative;
padding: 10px 10px 0;
@ -164,3 +170,36 @@
}
}
} // end .account__header
.account-timeline {
&__header {
display: block;
width: 100%;
}
}
.account__header__content {
color: var(--primary-text-color-faint);
font-size: 14px;
font-weight: 400;
overflow: hidden;
word-break: normal;
word-wrap: break-word;
p {
margin-bottom: 20px;
&:last-child {
margin-bottom: 0;
}
}
a {
color: inherit;
text-decoration: underline;
&:hover {
text-decoration: none;
}
}
}

@ -0,0 +1,35 @@
.badge {
background-color: var(--brand-color);
color: #fff;
font-size: 12px;
font-weight: normal;
text-transform: uppercase;
padding: 2px 6px;
border-radius: 2px;
margin: 0 5px 5px 0;
&--pro {
background-color: #8a2be2;
color: #fff;
}
&--investor {
background-color: #ffd700;
color: #000;
}
&--donor {
background-color: #90ee90;
color: #000;
}
&--admin {
background-color: #000;
color: #fff;
}
&--moderator {
background-color: #048ba8;
color: #fff;
}
}

@ -14,7 +14,7 @@ a.button {
border-radius: 4px;
text-transform: uppercase;
color: #fff;
background: $gab-small-cta-primary;
background: #607cf5;
}
}

@ -0,0 +1,662 @@
.column__wrapper {
display: flex;
flex: 1 1 auto;
position: relative;
}
.columns-area {
display: flex;
flex: 1 1 auto;
flex-direction: row;
justify-content: flex-start;
position: relative;
&__panels {
display: flex;
justify-content: center;
width: 100%;
height: 100%;
&__pane {
height: 100%;
pointer-events: none;
display: flex;
justify-content: flex-end;
padding-top: 15px;
&--start {
justify-content: flex-start;
}
&__inner {
width: 265px;
pointer-events: auto;
height: 100%;
}
}
&__main {
display: flex;
flex-direction: column;
box-sizing: border-box;
width: 100%;
max-width: 600px;
padding: 0 20px;
@media screen and (max-width: 375px) {
padding: 0 10px;
}
@media screen and (min-width: 895px) {
margin: 0 20px;
padding: 0;
}
}
}
}
.column {
width: 350px;
position: relative;
box-sizing: border-box;
display: flex;
flex-direction: column;
}
@media screen and (min-width: 631px) {
.columns-area {
padding: 0;
}
.column,
.drawer {
flex: 0 0 auto;
padding: 10px;
padding-left: 5px;
padding-right: 5px;
&:first-child {
padding-left: 10px;
}
&:last-child {
padding-right: 10px;
}
}
.columns-area > div {
.column,
.drawer {
padding-left: 5px;
padding-right: 5px;
}
}
}
.columns-area--mobile {
display: block;
flex-direction: column;
width: 100%;
margin: 0 auto;
padding: 15px 0;
.column,
.drawer {
width: 100%;
height: 100%;
padding: 0;
}
.autosuggest-textarea__textarea {font-size: 16px;}
.search__input {
line-height: 18px;
font-size: 16px;
padding: 15px;
padding-right: 30px;
}
.search__icon .fa {top: 15px;}
@media screen and (min-width: 630px) {
.detailed-status {
padding: 15px;
.media-gallery,
.video-player {
margin-top: 15px;
}
}
.account__header__bar {padding: 5px 10px;}
.navigation-bar,
.compose-form {
padding: 15px;
}
.compose-form .compose-form__publish .compose-form__publish-button-wrapper {padding-top: 15px;}
.status {
padding: 15px 15px 15px (48px + 15px * 2);
min-height: 48px + 2px;
&__avatar {
left: 15px;
top: 17px;
}
&__content {
padding-top: 5px;
}
&__prepend {
margin-left: 48px + 15px * 2;
padding-top: 15px;
}
&__prepend-icon-wrapper {
left: -32px;
}
.media-gallery,
.video-player {
margin-top: 10px;
}
}
.account {
padding: 15px 10px;
}
.notification {
&__message {
margin-left: 48px + 15px * 2;
padding-top: 15px;
}
&__favourite-icon-wrapper {
left: -32px;
}
.status {
padding-top: 8px;
}
.account {
padding-top: 8px;
}
.account__avatar-wrapper {
margin-left: 17px;
margin-right: 15px;
}
}
}
}
// This controls where the left column breaks.
@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {
.columns-area__panels__pane--left {
display: none;
}
}
@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {
.columns-area__panels__pane--right {
display: none;
}
}
.column-back-button {
background: var(--brand-color-med);
color: var(--highlight-text-color);
cursor: pointer;
flex: 0 0 auto;
font-size: 16px;
line-height: inherit;
border: 0;
text-align: unset;
padding: 15px;
margin: 0;
z-index: 3;
outline: 0;
&:hover {
text-decoration: underline;
}
}
.column-header__back-button {
background: var(--brand-color-faint);
border: 0;
font-family: inherit;
color: var(--highlight-text-color);
cursor: pointer;
white-space: nowrap;
font-size: 16px;
padding: 0 5px 0 0;
z-index: 3;
&:hover {
text-decoration: underline;
}
&:last-child {
padding: 0 15px 0 0;
}
}
.column-back-button__icon {
display: inline-block;
margin-right: 5px;
}
.column-back-button--slim {
position: relative;
}
.column-back-button--slim-button {
cursor: pointer;
flex: 0 0 auto;
font-size: 16px;
padding: 15px;
position: absolute;
right: 0;
top: -48px;
}
.column-link {
background: var(--brand-color-med);
color: var(--primary-text-color);
display: block;
font-size: 16px;
padding: 15px;
text-decoration: none;
&:hover,
&:focus,
&:active {
background: var(--brand-color-faint);
}
&:focus {
outline: 0;
}
&--transparent {
background: transparent;
color: var(--background-color);
&:hover,
&:focus,
&:active {
background: transparent;
color: var(--primary-text-color);
}
&.active {
color: var(--brand-color);
}
}
}
.column-link__icon {
display: inline-block;
margin-right: 5px;
}
.column-link__badge {
display: inline-block;
border-radius: 4px;
font-size: 12px;
line-height: 19px;
font-weight: 500;
background: var(--brand-color-med);
padding: 4px 8px;
margin: -6px 10px;
}
.column-subheading {
background: var(--brand-color-med);
color: var(--primary-text-color-faint);
padding: 8px 20px;
font-size: 12px;
font-weight: 500;
text-transform: uppercase;
cursor: default;
}
.columns-area--mobile .column {
@include standard-panel;
}
.column-header__wrapper {
position: relative;
flex: 0 0 auto;
overflow: hidden;
&.active {
&::before {
display: block;
content: "";
position: absolute;
top: 35px;
left: 0;
right: 0;
margin: 0 auto;
width: 60%;
pointer-events: none;
height: 28px;
z-index: 1;
background: radial-gradient(ellipse, rgba(var(--brand-color), 0.23) 0%, rgba(var(--brand-color), 0) 60%);
}
}
}
.column-header {
display: flex;
font-size: 16px;
flex: 0 0 auto;
cursor: pointer;
position: relative;
z-index: 2;
outline: 0;
overflow-x: auto;
& > button,
& > .btn {
margin: 0;
border: 0;
padding: 15px;
color: inherit;
background: transparent;
font: inherit;
text-align: left;
text-decoration: none;
white-space: nowrap;
&--sub {
font-size: 14px;
padding: 6px 10px;
}
&.grouped {
margin: 6px;
color: var(--primary-text-color-faint);
}
&.active {
color: var(--primary-text-color);
border-radius: 10px;
background-color: var(--brand-color-faint);
}
@media screen and (max-width: $nav-breakpoint-2) {
padding: 8px;
font-size: 14px;
&.grouped {
margin: 6px 2px 6px 6px;
}
&.active {
border-radius: 5px;
}
}
}
& > .column-header__back-button {
color: var(--highlight-text-color);
}
&.active {
box-shadow: 0 1px 0 rgba(var(--highlight-text-color), 0.3);
.column-header__icon {
color: var(--highlight-text-color);
text-shadow: 0 0 10px rgba(var(--highlight-text-color), 0.4);
}
}
&:focus,
&:active {
outline: 0;
}
}
.column-header__buttons {
height: 48px;
display: flex;
margin-left: auto;
}
.column-header__links .text-btn {
margin-right: 10px;
}
.column-header__button {
cursor: pointer;
border: 0;
padding: 0 15px;
font-size: 16px;
color: var(--primary-text-color-faint);
background: transparent;
&:hover {
color: rgba(var(--primary-text-color-rgb), 0.8);
}
&.active {
color: var(--primary-text-color);
background: var(--brand-color-med);
&:hover {
color: var(--primary-text-color);
background: var(--brand-color-med);
}
}
}
.column-header__collapsible {
max-height: 70vh;
overflow: hidden;
overflow-y: auto;
color: var(--primary-text-color-faint);
transition: max-height 150ms ease-in-out, opacity 300ms linear;
opacity: 1;
&.collapsed {
max-height: 0;
opacity: 0.5;
}
&.animating {
overflow-y: hidden;
}
hr {
height: 0;
background: transparent;
border: 0;
border-top: 1px solid var(--brand-color-med);
margin: 10px 0;
}
}
.column-header__collapsible-inner {
background: var(--background-color);
padding: 15px;
}
.column-header__setting-btn {
&--link {
text-decoration: none;
.fa {
margin-left: 10px;
}
}
&:hover {
color: var(--primary-text-color-faint);
text-decoration: underline;
}
}
.column-header__setting-arrows {
float: right;
.column-header__setting-btn {
padding: 0 10px;
&:last-child {
padding-right: 0;
}
}
}
.column-header__expansion {
overflow-x: scroll;
overflow-y: hidden;
white-space: nowrap;
}
.column-header__icon {
display: inline-block;
margin-right: 5px;
}
.column-settings__outer {
background: var(--brand-color-med);
padding: 15px;
}
.column-settings__section {
color: var(--primary-text-color-faint);
cursor: default;
display: block;
font-weight: 500;
margin-bottom: 10px;
}
.column-settings__hashtags {
.column-settings__row {
margin-bottom: 15px;
}
.column-select {
&__control {
@include search-input;
}
&__placeholder {
color: var(--primary-text-color);
padding-left: 2px;
font-size: 12px;
}
&__value-container {
padding-left: 6px;
}
&__multi-value {
background: var(--brand-color-med);
&__remove {
cursor: pointer;
&:hover,
&:active,
&:focus {
background: var(--brand-color-med);
color: var(--primary-text-color);
}
}
}
&__multi-value__label,
&__input {
color: var(--primary-text-color-faint);
}
&__clear-indicator,
&__dropdown-indicator {
cursor: pointer;
transition: none;
color: var(--primary-text-color);
&:hover,
&:active,
&:focus {
color: var(--primary-text-color);
}
}
&__indicator-separator {
background-color: var(--brand-color-med);
}
&__menu {
@include search-popout;
padding: 0;
background: var(--background-color);
}
&__menu-list {
padding: 6px;
}
&__option {
color: var(--primary-text-color);
border-radius: 4px;
font-size: 14px;
&--is-focused,
&--is-selected {
background: var(--background-color);
}
}
}
}
.column-settings__row {
.text-btn {
margin-bottom: 15px;
}
}
.empty-column-indicator,
.error-column {
color: var(--primary-text-color);
background: var(--brand-color-med);
text-align: center;
padding: 40px;
font-size: 15px;
font-weight: 400;
cursor: default;
display: flex;
flex: 1 1 auto;
align-items: center;
justify-content: center;
min-height: 160px;
@supports(display: grid) { // hack to fix Chrome <57
contain: strict;
}
& > span {
max-width: 400px;
}
a {
color: var(--highlight-text-color);
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
}
.error-column {
flex-direction: column;
}
.column-link--transparent .icon-with-badge__badge {
border-color: var(--background-color);
}

@ -1,18 +1,17 @@
.compose-form {
padding: 10px;
&__sensitive-button {
padding: 10px;
padding-top: 0;
font-size: 14px;
font-weight: 500;
&.active {color: $highlight-text-color;}
&.active {color: var(--highlight-text-color);}
input[type=checkbox] {display: none;}
.checkbox {
display: inline-block;
position: relative;
border: 1px solid $ui-primary-color;
border: 1px solid var(--brand-color);
box-sizing: border-box;
width: 18px;
height: 18px;
@ -23,16 +22,16 @@
vertical-align: middle;
&.active {
border-color: $highlight-text-color;
background: $highlight-text-color;
border-color: var(--highlight-text-color);
background: var(--highlight-text-color);
}
}
}
.compose-form__warning {
color: $primary-text-color;
color: var(--primary-text-color);
margin-bottom: 10px;
background: $ui-primary-color;
background: var(--brand-color);
box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);
padding: 8px 10px;
border-radius: 4px;
@ -40,7 +39,7 @@
font-weight: 400;
strong {
color: $inverted-text-color;
color: var(--primary-text-color);
font-weight: 500;
@each $lang in $cjk-langs {
&:lang(#{$lang}) {
@ -50,7 +49,7 @@
}
a {
color: $lighter-text-color;
color: var(--highlight-text-color);
font-weight: 500;
text-decoration: underline;
@ -97,16 +96,22 @@
box-sizing: border-box;
width: 100%;
margin: 0;
color: $inverted-text-color;
background: $simple-background-color;
background: var(--background-color);
color: var(--primary-text-color);
padding: 10px;
font-family: inherit;
font-size: 14px;
font-size: 16px;
resize: vertical;
border: 0;
outline: 0;
&:focus {outline: 0;}
@media screen and (max-width: 600px) {font-size: 16px;}
&:focus {
outline: 0;
}
@media screen and (max-width: 600px) {
font-size: 16px;
}
}
.spoiler-input__input {border-radius: 4px;}
@ -117,6 +122,7 @@
padding-right: 10px + 22px;
resize: none;
scrollbar-color: initial;
transition: 0.2s;
&::-webkit-scrollbar {all: unset;}
@media screen and (max-width: 600px) {
max-height: 100px !important; // prevent auto-resize textarea
@ -145,9 +151,8 @@
width: 100%;
z-index: 99;
box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);
background: $ui-secondary-color;
background: var(--background-color);
border-radius: 0 0 4px 4px;
color: $inverted-text-color;
font-size: 14px;
padding: 6px;
&.autosuggest-textarea__suggestions--visible {display: block;}
@ -162,7 +167,7 @@
&:focus,
&:active,
&.selected {
background: darken($ui-secondary-color, 10%);
background: var(--brand-color-med);
}
}
@ -183,13 +188,16 @@
width: 16px;
height: 16px;
}
.autosuggest-account .display-name__account {color: $lighter-text-color;}
.autosuggest-account .display-name__account {
color: var(--primary-text-color-faint);
}
.compose-form__modifiers {
color: $inverted-text-color;
color: var(--primary-text-color);
font-family: inherit;
font-size: 14px;
background: $simple-background-color;
background: var(--background-color);
.compose-form__upload-wrapper {overflow: hidden;}
.compose-form__uploads-wrapper {
@ -199,7 +207,7 @@
&.contains-media {
padding: 5px;
border-top: 1px solid darken($simple-background-color, 8%);
border-top: 1px solid var(--foreground-color);
}
}
@ -218,7 +226,7 @@
.icon-button {
flex: 0 1 auto;
color: $gab-secondary-text;
color: var(--primary-text-color-faint);
font-size: 14px;
font-weight: 500;
padding: 10px;
@ -227,7 +235,7 @@
&:hover,
&:focus,
&:active {
color: $gab-text-highlight;
color: var(--highlight-text-color);
}
}
&.active {opacity: 1;}
@ -249,8 +257,8 @@
background: rgba(0, 0, 0, 0.3);
box-sizing: border-box;
background: transparent;
color: $gab-secondary-text;
border: 1px solid $gab-secondary-text;
color: var(--primary-text-color-faint);
border: 1px solid var(--primary-text-color-faint);
outline: none;
padding: 10px;
margin: 0;
@ -262,7 +270,7 @@
&:focus {color: #fff;}
&::placeholder {
color: $gab-secondary-text;
color: var(--primary-text-color-faint);
}
}
&.active {opacity: 1;}
@ -282,7 +290,7 @@
.compose-form__buttons-wrapper {
padding: 10px;
background: darken($simple-background-color, 8%);
background: var(--background-color);
border-radius: 0 0 4px 4px;
display: flex;
justify-content: space-between;
@ -310,10 +318,10 @@
.character-counter {
cursor: default;
font-family: $font-sans-serif, sans-serif;
font-family: var(--font-sans-serif), sans-serif;
font-size: 14px;
font-weight: 600;
color: $gab-secondary-text;
color: var(--primary-text-color-faint);
&.character-counter--over {color: $warning-red;}
}
}
@ -331,3 +339,230 @@
}
}
} // end .compose-form
.upload-area {
align-items: center;
background: rgba($base-overlay-background, 0.8);
display: flex;
height: 100%;
justify-content: center;
left: 0;
opacity: 0;
position: absolute;
top: 0;
visibility: hidden;
width: 100%;
z-index: 2000;
* {
pointer-events: none;
}
}
.upload-area__drop {
width: 320px;
height: 160px;
display: flex;
box-sizing: border-box;
position: relative;
padding: 8px;
}
.upload-area__background {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: -1;
border-radius: 4px;
background: var(--brand-color-med);
box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);
}
.upload-area__content {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
color: var(--primary-text-color-faint);
font-size: 18px;
font-weight: 500;
border: 2px dashed var(--brand-color-med);
border-radius: 4px;
}
.upload-progress {
padding: 10px;
color: var(--highlight-text-color);
overflow: hidden;
display: flex;
.fa {
font-size: 34px;
margin-right: 10px;
}
span {
font-size: 12px;
text-transform: uppercase;
font-weight: 500;
display: block;
}
}
.upload-progess__message {
flex: 1 1 auto;
}
.upload-progress__backdrop {
width: 100%;
height: 6px;
border-radius: 6px;
background: var(--brand-color-med);
position: relative;
margin-top: 5px;
}
.upload-progress__tracker {
position: absolute;
left: 0;
top: 0;
height: 6px;
background: var(--brand-color);
border-radius: 6px;
}
.privacy-dropdown__dropdown {
font-size: 14px;
position: absolute;
background: var(--foreground-color);
box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
border-radius: 4px;
margin-left: 40px;
overflow: hidden;
z-index: 10000;
&.top {
transform-origin: 50% 100%;
}
&.bottom {
transform-origin: 50% 0;
}
}
.privacy-dropdown__option {
color: var(--primary-text-color);
padding: 10px;
cursor: pointer;
display: flex;
&:hover,
&.active {
background: var(--brand-color-med);
color: var(--primary-text-color);
outline: 0;
.privacy-dropdown__option__content {
color: var(--primary-text-color);
strong {
color: var(--primary-text-color);
}
}
}
&.active:hover {
background: rgba(var(--brand-color-rgb), 0.5);
}
}
.privacy-dropdown__option__icon {
display: flex;
align-items: center;
justify-content: center;
margin-right: 10px;
}
.privacy-dropdown__option__content {
flex: 1 1 auto;
color: var(--highlight-text-color);
strong {
font-weight: 500;
display: block;
color: var(--primary-text-color);
@each $lang in $cjk-langs {
&:lang(#{$lang}) {
font-weight: 700;
}
}
}
}
.privacy-dropdown.active {
.privacy-dropdown__value {
background: var(--foreground-color);
border-radius: 4px 4px 0 0;
box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);
.icon-button {
transition: none;
}
&.active {
background: var(--brand-color);
.icon-button {
color: var(--primary-text-color);
}
}
}
&.top .privacy-dropdown__value {
border-radius: 0 0 4px 4px;
}
.privacy-dropdown__dropdown {
display: block;
box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);
}
}
.focal-point {
position: relative;
cursor: pointer;
overflow: hidden;
&.dragging {
cursor: move;
}
img {
max-width: 80vw;
max-height: 80vh;
width: auto;
height: auto;
margin: auto;
}
&__reticle {
position: absolute;
width: 100px;
height: 100px;
transform: translate(-50%, -50%);
background: url('../images/reticle.png') no-repeat 0 0;
border-radius: 50%;
box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);
}
&__overlay {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
}
}

@ -7,7 +7,7 @@
}
.detailed-status {
background: lighten($ui-base-color, 4%);
background: rgba(var(--brand-color-rgb), 0.03);
padding: 14px 10px;
&--flex {
@ -45,22 +45,22 @@
.detailed-status__meta {
margin-top: 15px;
color: $dark-text-color;
color: var(--primary-text-color-faint);
font-size: 14px;
line-height: 18px;
display: flex;
}
.detailed-status__action-bar {
background: lighten($ui-base-color, 4%);
border-top: 1px solid lighten($ui-base-color, 8%);
border-bottom: 1px solid lighten($ui-base-color, 8%);
background: rgba(var(--brand-color-rgb), 0.03);
border-top: 1px solid var(--brand-color-faint);
border-bottom: 1px solid var(--brand-color-faint);
display: flex;
flex-direction: row;
}
.detailed-status__link {
color: $action-button-color;
color: var(--primary-text-color-faint);
cursor: pointer;
text-decoration: none;
font-size: 13px;
@ -92,3 +92,38 @@
.detailed-status__wrapper {
position: relative;
}
.detailed-status__application,
.detailed-status__datetime {
color: inherit;
}
.detailed-status__display-name {
color: var(--primary-text-color-faint);
display: flex;
line-height: 24px;
margin-bottom: 15px;
overflow: hidden;
strong,
span {
display: inline-block;
text-overflow: ellipsis;
overflow: hidden;
}
strong {
font-size: 16px;
color: var(--primary-text-color);
}
.display-name__account {
display: block;
margin-top: -10px;
}
}
.detailed-status__display-avatar {
float: left;
margin-right: 10px;
}

@ -0,0 +1,61 @@
.status__display-name,
.status__relative-time,
.detailed-status__display-name,
.detailed-status__datetime,
.detailed-status__application,
.account__display-name {
text-decoration: none;
}
.status__display-name,
.account__display-name {
strong {
color: var(--primary-text-color);
}
}
.muted {
.emojione {
opacity: 0.5;
}
}
.status__display-name,
.reply-indicator__display-name,
.detailed-status__display-name,
a.account__display-name {
&:hover strong {
text-decoration: underline;
}
}
.account__display-name strong {
display: block;
overflow: hidden;
text-overflow: ellipsis;
}
.display-name {
display: block;
max-width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.display-name__html {
font-weight: 600;
padding-right: 4px;
}
.display-name__account {
font-size: 14px;
}
// Hide "verified" emoji to avoid confusion
.display-name,
.notification__display-name {
.emojione[alt*="verified"] {
display: none;
}
}

@ -0,0 +1,81 @@
.drawer {
width: 300px;
box-sizing: border-box;
display: flex;
flex-direction: column;
overflow-y: hidden;
}
.drawer__tab {
display: block;
flex: 1 1 auto;
padding: 15px 5px 13px;
color: var(--primary-text-color-faint);
text-decoration: none;
text-align: center;
font-size: 16px;
border-bottom: 2px solid transparent;
}
.column,
.drawer {
flex: 1 1 100%;
overflow: hidden;
}
.drawer__pager {
box-sizing: border-box;
padding: 0;
flex-grow: 1;
position: relative;
overflow: hidden;
display: flex;
}
.drawer__inner {
top: 0;
left: 0;
background: var(--foreground-color);
box-sizing: border-box;
padding: 0;
display: flex;
flex-direction: column;
overflow: hidden;
overflow-y: auto;
width: 100%;
height: 100%;
}
.pseudo-drawer {
background: var(--background-color);
font-size: 13px;
text-align: left;
}
.drawer__header {
flex: 0 0 auto;
font-size: 16px;
background: var(--brand-color-med);
margin-bottom: 10px;
display: flex;
flex-direction: row;
a {
transition: background 100ms ease-in;
&:hover {
background: var(--background-color);
transition: background 200ms ease-out;
}
}
}
.drawer__backdrop {
cursor: pointer;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba($base-overlay-background, 0.5);
}

@ -4,11 +4,10 @@
@include font-weight(normal);
z-index: 9999;
position: absolute;
background: $gab-background-container;
border-radius: 4px;
border: 1px solid $gab-placeholder-accent;
background: var(--background-color);
border-radius: 6px;
padding: 4px 0;
color: $gab-secondary-text;
color: var(--primary-text-color);
box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.5);
&.left {transform-origin: 100% 50%;}
&.top {transform-origin: 50% 100%;}
@ -25,28 +24,28 @@
right: -5px;
margin-top: -5px;
border-width: 5px 0 5px 5px;
border-left-color: $gab-placeholder-accent;
border-left-color: var(--background-color);
}
&.top {
bottom: -5px;
margin-left: -5px;
border-width: 5px 5px 0;
border-top-color: $gab-placeholder-accent;
border-top-color: var(--background-color);
}
&.bottom {
top: -5px;
margin-left: -5px;
border-width: 0 5px 5px;
border-bottom-color: $gab-placeholder-accent;
border-bottom-color: var(--background-color);
}
&.right {
left: -5px;
margin-top: -5px;
border-width: 5px 5px 5px 0;
border-right-color: $gab-placeholder-accent;
border-right-color: var(--background-color);
}
}
@ -64,14 +63,14 @@
text-overflow: ellipsis;
white-space: nowrap;
text-transform: capitalize;
color: $gab-secondary-text;
color: var(--primary-text-color);
&:focus,
&:hover,
&:active {
outline: 0;
color: #fff;
background: $gab-brand-default !important;
background: var(--brand-color) !important;
}
}
@ -79,7 +78,7 @@
display: block;
margin: 10px !important;
height: 1px;
background: $gab-background-base;
background: var(--foreground-color);
}
}
// end .dropdown-menu
@ -110,7 +109,7 @@
& > ul {
list-style: none;
background: $ui-secondary-color;
background: var(--background-color);
padding: 4px 0;
border-radius: 4px;
box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);
@ -135,8 +134,8 @@
padding: 4px 14px;
box-sizing: border-box;
text-decoration: none;
background: $ui-secondary-color;
color: $inverted-text-color;
background: var(--background-color);
color: var(--primary-text-color);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
@ -146,8 +145,8 @@
}
&:hover {
background: $ui-highlight-color;
color: $secondary-text-color;
background: var(--brand-color);
color: var(--primary-text-color-faint);
}
}
}

@ -6,7 +6,7 @@
img {
width: 20px;
height: 20px;
filter: drop-shadow(2px 0 0 #fff); // FIXME: Use theme color
filter: drop-shadow(2px 0 0 var(--foreground-color));
}
}
@ -57,7 +57,7 @@
.emoji-react-selector {
position: absolute;
display: flex;
background-color: #fff;
background-color: var(--foreground-color);
padding: 5px 8px;
border-radius: 9999px;
box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.1);

@ -0,0 +1,18 @@
.error-boundary {
> div {
margin: auto;
span {
display: block;
text-align: center;
color: var(--primary-text-color-faint);
}
a {
display: block;
margin: 15px auto;
text-align: center;
color: var(--brand-color);
}
}
}

@ -0,0 +1,77 @@
.getting-started__wrapper,
.getting-started,
.flex-spacer {
background: var(--brand-color-med);
}
.getting-started__wrapper {
flex: 0 0 auto;
}
.flex-spacer {
flex: 1 1 auto;
}
.getting-started {
overflow: auto;
&__footer {
flex: 0 0 auto;
padding: 10px;
padding-top: 20px;
opacity: 0.7;
ul {
margin-bottom: 10px;
}
ul li {
display: inline;
}
p {
color: var(--primary-text-color);
font-size: 13px;
margin-bottom: 20px;
a {
color: var(--primary-text-color-faint);
text-decoration: underline;
opacity: 0.8;
}
}
a {
text-decoration: none;
color: var(--primary-text-color-faint);
opacity: 0.8;
&:hover,
&:focus,
&:active {
text-decoration: underline;
}
}
}
&__trends {
background: var(--brand-color-med);
flex: 0 1 auto;
@media screen and (max-height: 810px) {
.trends__item:nth-child(3) {
display: none;
}
}
@media screen and (max-height: 720px) {
.trends__item:nth-child(2) {
display: none;
}
}
@media screen and (max-height: 670px) {
display: none;
}
}
}

@ -1,5 +1,5 @@
.group-column-header {
@include gab-container-standards;
@include standard-panel;
overflow: hidden;
.group-column-header__title {
@ -26,7 +26,7 @@
}
.group-card {
@include gab-container-standards;
@include standard-panel;
display: block;
flex: 0 0 calc(50% - 20px/2);
margin-bottom: 20px;
@ -39,7 +39,7 @@
img {
pointer-events: none;
width: 100%;
background: $gab-background-container;
background: var(--foreground-color);
}
}
@ -47,20 +47,20 @@
padding: 15px;
.group-card__title {
color: $primary-text-color;
color: var(--primary-text-color);
font-size: 16px;
font-weight: bold;
}
.group-card__meta {
color: $gab-secondary-text;
color: var(--primary-text-color-faint);
font-size: 14px;
margin-top: 5px;
margin-bottom: 10px;
}
.group-card__description {
color: $primary-text-color;
color: var(--primary-text-color);
font-size: 14px;
}
}

@ -9,7 +9,7 @@
.group__header {
width: 100%;
max-width: 1150px;
background: $gab-background-container;
background: var(--foreground-color);
border-radius: 10px;
overflow: hidden;
margin: 20px 0;
@ -26,11 +26,11 @@
text-decoration: none;
padding: 16px 22px;
text-align: center;
color: $primary-text-color;
color: var(--primary-text-color);
&:hover,
&--active {
border-bottom: 2px solid $primary-text-color;
border-bottom: 2px solid var(--primary-text-color);
}
}
@ -69,14 +69,14 @@
display: inline-block;
margin-bottom: 10px;
border-radius: 4px;
background: $gab-background-container;
background: var(--foreground-color);
font-size: 13px;
padding: 4px 8px;
}
}
.group__feed {
background: $gab-background-container;
background: var(--foreground-color);
border-top-left-radius: 10px;
border-top-right-radius: 10px;
overflow: hidden;

@ -1,5 +1,5 @@
.group-form {
@include gab-container-standards;
@include standard-panel;
padding: 20px;
&,
@ -31,19 +31,19 @@
float: left;
height: 20px;
padding: 3px 0 0 33px;
color: $gab-secondary-text;
color: var(--primary-text-color-faint);
background-repeat: no-repeat;
background-image: url('../images/sprite-post-functions.png');
background-size: 100px 1200px;
&:hover {
color: $gab-brand-default;
color: var(--brand-color);
background-position: 0 -100px;
}
&.group-form__file-label--selected {
background-position: 0 -100px;
color: $gab-brand-default;
color: var(--brand-color);
}
}

@ -3,13 +3,13 @@
padding: 0 15px 15px;
&__show-all {
color: $primary-text-color;
color: var(--primary-text-color);
}
}
&__item {
display: block;
color: $primary-text-color;
color: var(--primary-text-color);
text-decoration: none;
margin-bottom: 15px;
@ -23,10 +23,10 @@
&__meta {
font-size: 0.8em;
color: $gab-secondary-text;
color: var(--primary-text-color-faint);
&__unread {
color: $gab-brand-default;
color: var(--brand-color);
}
}
}

@ -1,7 +1,7 @@
.hotkeys-modal {
padding: 8px 0 0;
overflow: hidden;
background-color: $classic-base-color;
background-color: var(--background-color);
border-radius: 6px;
flex-direction: column;
@ -10,7 +10,7 @@
}
.compose-modal__content {
background-color: $gab-background-base-light;
background-color: var(--background-color);
margin: 5px;
@media screen and (max-width: 960px) {
@ -27,7 +27,7 @@
display: block;
padding-left: 10px;
margin-bottom: 10px;
color: $primary-text-color;
color: var(--primary-text-color);
font-size: 16px;
font-weight: 600;
}
@ -43,8 +43,8 @@
kbd {
display: inline-block;
padding: 2px 8px;
background-color: lighten($ui-base-color, 8%);
border: 1px solid darken($ui-base-color, 4%);
background-color: var(--brand-color-med);
border: 1px solid var(--brand-color-med);
border-radius: 4px;
}
}

@ -3,14 +3,14 @@ textarea {
&.standard {
@include font-size(16);
@include line-height(18);
@include input-placeholder($gab-placeholder-accent);
@include input-placeholder(var(--primary-text-color-faint));
box-sizing: border-box;
padding: 7px 10px;
border: 1px solid;
border-radius: 4px;
color: $gab-brand-default;
border-color: $gab-placeholder-accent;
background: $gab-background-container;
color: var(--brand-color);
border-color: var(--primary-text-color-faint);
background: var(--foreground-color);
&:focus {outline: none;}
}
}

@ -0,0 +1,119 @@
.list-editor {
flex-direction: column;
width: 100%;
overflow: hidden;
height: 100%;
overflow-y: scroll;
@media screen and (max-width: 420px) {
width: 90%;
}
h4 {
padding: 15px 0;
background: var(--background-color);
font-weight: 500;
font-size: 16px;
text-align: center;
border-radius: 8px 8px 0 0;
}
.drawer__inner {
border-radius: 0 0 8px 8px;
&.backdrop {
width: calc(100% - 60px);
box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
border-radius: 0 0 0 8px;
}
}
&__accounts {
background: var(--background-color);
overflow-y: auto;
max-height: 200px;
}
.account__display-name {
&:hover strong {
text-decoration: none;
}
}
.account__avatar {
cursor: default;
}
.search {
display: flex;
flex-direction: row;
margin: 10px 0;
> label {
flex: 1 1;
}
> .search__icon .fa {
right: 102px !important;
}
> .button {
width: 80px;
margin-left: 10px;
}
}
}
.list-adder {
flex-direction: column;
width: 100%;
overflow: hidden;
height: 100%;
overflow-y: scroll;
@media screen and (max-width: 420px) {
width: 90%;
}
&__account {
background: var(--background-color);
border-radius: 4px;
}
&__lists {
background: var(--background-color);
}
.list {
padding: 4px;
border-bottom: 1px solid var(--brand-color-med);
}
.list__wrapper {
display: flex;
.account__relationship {
padding: 8px 5px 0;
}
}
.list__display-name {
flex: 1 1 auto;
overflow: hidden;
text-decoration: none;
font-size: 16px;
padding: 10px;
}
}
.new-list-form,
.edit-list-form {
&__btn {
margin-left: 6px;
width: 112px;
}
&__input {
height: 36px;
}
}

@ -0,0 +1,145 @@
.media-gallery {
box-sizing: border-box;
margin-top: 8px;
overflow: hidden;
border-radius: 4px;
position: relative;
width: 100%;
background-color: var(--brand-color-faint);
}
.media-gallery__item {
border: 0;
box-sizing: border-box;
display: block;
float: left;
position: relative;
border-radius: 4px;
overflow: hidden;
}
.media-gallery__item-thumbnail {
cursor: zoom-in;
display: block;
text-decoration: none;
color: var(--primary-text-color-faint);
line-height: 0;
position: relative;
z-index: 1;
&,
img,
canvas {
height: 100%;
width: 100%;
}
img,
canvas {
object-fit: cover;
}
&--play-on-hover {
&::before {
content: 'GIF';
position: absolute;
color: var(--primary-text-color);
background: var(--foreground-color);
bottom: 6px;
left: 6px;
padding: 2px 6px;
border-radius: 2px;
font-size: 11px;
font-weight: 600;
pointer-events: none;
opacity: 0.9;
transition: opacity 0.1s ease;
line-height: 18px;
}
img {
position: absolute;
}
img,
&:hover::before {
visibility: hidden;
}
&:hover img {
visibility: visible;
}
}
}
.media-gallery__preview {
width: 100%;
height: 100%;
object-fit: cover;
position: absolute;
top: 0;
left: 0;
z-index: 0;
background: var(--background-color);
&--hidden {
display: none;
}
}
.media-gallery__gifv {
height: 100%;
overflow: hidden;
position: relative;
width: 100%;
}
.media-gallery__item-gifv-thumbnail {
cursor: zoom-in;
height: 100%;
object-fit: cover;
position: relative;
width: 100%;
z-index: 1;
transform: none;
top: 0;
}
.media-gallery__item-thumbnail-label {
clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
clip: rect(1px, 1px, 1px, 1px);
overflow: hidden;
position: absolute;
}
.media-gallery__gifv__label {
display: block;
position: absolute;
color: var(--primary-text-color);
background: rgba($base-overlay-background, 0.5);
bottom: 6px;
left: 6px;
padding: 2px 6px;
border-radius: 2px;
font-size: 11px;
font-weight: 600;
z-index: 1;
pointer-events: none;
opacity: 0.9;
transition: opacity 0.1s ease;
line-height: 18px;
}
.media-gallery__gifv {
&.autoplay {
.media-gallery__gifv__label {
display: none;
}
}
&:hover {
.media-gallery__gifv__label {
opacity: 1;
}
}
}

@ -0,0 +1,28 @@
.media-spoiler {
background: var(--background-color);
color: var(--primary-text-color-faint);
border: 0;
padding: 0;
width: 100%;
height: 100%;
border-radius: 4px;
appearance: none;
&:hover,
&:active,
&:focus {
padding: 0;
color: var(--primary-text-color);
}
}
.media-spoiler__warning {
display: block;
font-size: 14px;
}
.media-spoiler__trigger {
display: block;
font-size: 11px;
font-weight: 700;
}

@ -98,7 +98,7 @@
background: rgba($base-overlay-background, 0.5);
box-sizing: border-box;
border: 0;
color: $primary-text-color;
color: var(--primary-text-color);
cursor: pointer;
display: flex;
align-items: center;
@ -143,7 +143,7 @@
a {
text-decoration: none;
font-weight: 500;
color: $ui-secondary-color;
color: var(--background-color);
&:hover,
&:focus,
@ -158,7 +158,7 @@
}
.media-modal__button {
background-color: $primary-text-color;
background-color: var(--primary-text-color);
height: 12px;
width: 12px;
border-radius: 6px;
@ -169,7 +169,7 @@
}
.media-modal__button--active {
background-color: $highlight-text-color;
background-color: var(--highlight-text-color);
}
.media-modal__close {
@ -182,8 +182,8 @@
.onboarding-modal,
.error-modal,
.embed-modal {
background: $ui-secondary-color;
color: $inverted-text-color;
background: var(--background-color);
color: var(--primary-text-color);
border-radius: 8px;
overflow: hidden;
display: flex;
@ -230,7 +230,7 @@
.onboarding-modal__paginator,
.error-modal__footer {
flex: 0 0 auto;
background: darken($ui-secondary-color, 8%);
background: var(--background-color);
display: flex;
padding: 25px;
@ -240,7 +240,7 @@
.onboarding-modal__nav,
.error-modal__nav {
color: $lighter-text-color;
color: var(--highlight-text-color);
border: 0;
font-size: 14px;
font-weight: 500;
@ -254,18 +254,18 @@
&:hover,
&:focus,
&:active {
color: darken($lighter-text-color, 4%);
background-color: darken($ui-secondary-color, 16%);
color: var(--primary-text-color-faint);
background-color: var(--background-color);
}
&.onboarding-modal__done,
&.onboarding-modal__next {
color: $inverted-text-color;
color: var(--primary-text-color);
&:hover,
&:focus,
&:active {
color: lighten($inverted-text-color, 4%);
color: var(--primary-text-color);
}
}
}
@ -282,15 +282,15 @@
&__label {
font-weight: 500;
color: $inverted-text-color;
color: var(--primary-text-color);
margin-bottom: 5px;
text-transform: uppercase;
font-size: 12px;
}
&__case {
background: $ui-base-color;
color: $secondary-text-color;
background: var(--brand-color-med);
color: var(--primary-text-color-faint);
font-weight: 500;
padding: 10px;
border-radius: 4px;
@ -315,9 +315,9 @@
width: 480px;
max-width: 90vw;
border-radius: 4px;
border: 1px solid $gab-placeholder-accent;
color: $gab-secondary-text;
background: $gab-background-container;
border: 1px solid var(--primary-text-color-faint);
color: var(--primary-text-color-faint);
background: var(--foreground-color);
.status__display-name {
display: block;
@ -334,14 +334,14 @@
}
.status__content__spoiler-link {
color: lighten($secondary-text-color, 8%);
color: var(--primary-text-color);
}
}
.actions-modal {
.status {
background: $white;
border-bottom-color: $ui-secondary-color;
background: #ffffff;
border-bottom-color: var(--background-color);
padding-top: 10px;
padding-bottom: 10px;
}
@ -350,7 +350,7 @@
display: block;
margin: 10px;
height: 1px;
background: $gab-background-base;
background: var(--background-color);
}
}
@ -369,14 +369,14 @@
.mute-modal__action-bar {
display: flex;
justify-content: space-between;
background: $ui-secondary-color;
background: var(--background-color);
padding: 10px;
line-height: 36px;
& > div {
flex: 1 1 auto;
text-align: right;
color: $lighter-text-color;
color: var(--highlight-text-color);
padding-right: 10px;
}
@ -409,7 +409,7 @@
.report-modal__container {
display: flex;
border-top: 1px solid $ui-secondary-color;
border-top: 1px solid var(--background-color);
@media screen and (max-width: 480px) {
flex-wrap: wrap;
@ -435,12 +435,12 @@
overflow-x: hidden;
.status__content a {
color: $highlight-text-color;
color: var(--highlight-text-color);
}
.status__content,
.status__content p {
color: $gab-secondary-text;
color: var(--primary-text-color-faint);
}
@media screen and (max-width: 480px) {
@ -450,7 +450,7 @@
.report-modal__comment {
padding: 20px;
border-right: 1px solid $ui-secondary-color;
border-right: 1px solid var(--background-color);
max-width: 320px;
p {
@ -464,8 +464,8 @@
box-sizing: border-box;
width: 100%;
margin: 0;
color: $inverted-text-color;
background: $white;
color: var(--primary-text-color);
background: #ffffff;
padding: 10px;
font-family: inherit;
font-size: 14px;
@ -473,11 +473,11 @@
border: 0;
outline: 0;
border-radius: 4px;
border: 1px solid $ui-secondary-color;
border: 1px solid var(--background-color);
margin-bottom: 20px;
&:focus {
border: 1px solid darken($ui-secondary-color, 8%);
border: 1px solid var(--background-color);
}
}
@ -486,7 +486,7 @@
margin-bottom: 24px;
&__label {
color: $inverted-text-color;
color: var(--primary-text-color);
font-size: 14px;
}
}
@ -532,7 +532,7 @@
align-items: center;
padding: 13px 10px 12px;
@inclide font-size(14);
color: $gab-secondary-text;
color: var(--primary-text-color-faint);
text-decoration: none;
&,
@ -546,8 +546,8 @@
&:focus {
&,
button {
background: $gab-background-base;
color: $gab-text-highlight;
background: var(--background-color);
color: var(--highlight-text-color);
box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.5);
}
}
@ -563,14 +563,14 @@
.confirmation-modal__cancel-button,
.mute-modal__cancel-button {
background-color: transparent;
color: $lighter-text-color;
color: var(--highlight-text-color);
font-size: 14px;
font-weight: 500;
&:hover,
&:focus,
&:active {
color: darken($lighter-text-color, 4%);
color: var(--primary-text-color-faint);
}
}
@ -607,7 +607,7 @@
}
.modal-layout {
background: $ui-base-color url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 234.80078 31.757813" width="234.80078" height="31.757812"><path d="M19.599609 0c-1.05 0-2.10039.375-2.90039 1.125L0 16.925781v14.832031h234.80078V17.025391l-16.5-15.900391c-1.6-1.5-4.20078-1.5-5.80078 0l-13.80078 13.099609c-1.6 1.5-4.19883 1.5-5.79883 0L179.09961 1.125c-1.6-1.5-4.19883-1.5-5.79883 0L159.5 14.224609c-1.6 1.5-4.20078 1.5-5.80078 0L139.90039 1.125c-1.6-1.5-4.20078-1.5-5.80078 0l-13.79883 13.099609c-1.6 1.5-4.20078 1.5-5.80078 0L100.69922 1.125c-1.600001-1.5-4.198829-1.5-5.798829 0l-13.59961 13.099609c-1.6 1.5-4.200781 1.5-5.800781 0L61.699219 1.125c-1.6-1.5-4.198828-1.5-5.798828 0L42.099609 14.224609c-1.6 1.5-4.198828 1.5-5.798828 0L22.5 1.125C21.7.375 20.649609 0 19.599609 0z" fill="#{hex-color($ui-base-lighter-color)}"/></svg>') repeat-x bottom fixed;
background: var(--brand-color-med) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 234.80078 31.757813" width="234.80078" height="31.757812"><path d="M19.599609 0c-1.05 0-2.10039.375-2.90039 1.125L0 16.925781v14.832031h234.80078V17.025391l-16.5-15.900391c-1.6-1.5-4.20078-1.5-5.80078 0l-13.80078 13.099609c-1.6 1.5-4.19883 1.5-5.79883 0L179.09961 1.125c-1.6-1.5-4.19883-1.5-5.79883 0L159.5 14.224609c-1.6 1.5-4.20078 1.5-5.80078 0L139.90039 1.125c-1.6-1.5-4.20078-1.5-5.80078 0l-13.79883 13.099609c-1.6 1.5-4.20078 1.5-5.80078 0L100.69922 1.125c-1.600001-1.5-4.198829-1.5-5.798829 0l-13.59961 13.099609c-1.6 1.5-4.200781 1.5-5.800781 0L61.699219 1.125c-1.6-1.5-4.198828-1.5-5.798828 0L42.099609 14.224609c-1.6 1.5-4.198828 1.5-5.798828 0L22.5 1.125C21.7.375 20.649609 0 19.599609 0z" fill="#{hex-color(var(--background-color))}"/></svg>') repeat-x bottom fixed;
display: flex;
flex-direction: column;
height: 100vh;
@ -619,3 +619,230 @@
margin-top: 0;
}
}
.compose-modal {
padding: 8px 0 0;
overflow: hidden;
background-color: var(--background-color);
border-radius: 6px;
flex-direction: column;
width: 600px;
margin: 10px 0;
&__header {
display: block;
position: relative;
padding: 5px 0;
&__title {
display: block;
width: 80%;
margin: 0 auto;
font-size: 18px;
font-weight: bold;
line-height: 24px;
color: var(--primary-text-color);
text-align: center;
}
}
&__close {
position: absolute;
right: 10px;
top: 5px;
color: #999;
}
&__content {
display: flex;
flex-direction: row;
flex: 1;
padding: 10px;
overflow-y: hidden;
&--scroll {
display: block;
overflow-y: auto;
}
.timeline-compose-block {
background: transparent !important;
width: 100%;
padding: 0;
margin-bottom: 0;
.compose-form {
max-height: 100%;
max-width: 100%;
display: flex;
flex-direction: column;
padding: 0 !important;
.compose-form__autosuggest-wrapper .autosuggest-textarea__textarea {
max-height: 160px !important;
}
.compose-form__autosuggest-wrapper::before {
content: none !important;
}
}
}
}
@media screen and (max-width: 895px) {
margin: 0;
border-radius: 0;
height: 100vh;
width: 100vw;
}
}
.unauthorized-modal {
width: 440px !important;
&__content {
display: flex;
width: 100%;
height: 150px;
justify-content: center;
align-items: center;
flex-direction: column;
}
.unauthorized-modal-content {
&__text {
display: block;
margin-bottom: 18px;
color: #fff;
font-size: 14px;
}
&__button {
width: 200px;
}
}
&__footer {
display: flex;
border-top: 1px solid #666;
padding: 10px;
justify-content: center;
align-items: center;
> span {
font-size: 14px;
color: var(--primary-text-color-faint);
a {
color: var(--brand-color) !important;
}
}
}
@media screen and (max-width: 895px) {
height: 270px !important;
width: 330px !important;
}
}
.focal-point-modal {
max-width: 80vw;
max-height: 80vh;
position: relative;
}
.embed-modal {
max-width: 80vw;
max-height: 80vh;
h4 {
padding: 30px;
font-weight: 500;
font-size: 16px;
text-align: center;
}
.embed-modal__container {
padding: 10px;
.hint {
margin-bottom: 15px;
}
.embed-modal__html {
outline: 0;
box-sizing: border-box;
display: block;
width: 100%;
border: 0;
border-radius: 5px;
padding: 10px;
font-family: var(--font-monospace), monospace;
background: var(--brand-color-med);
color: var(--primary-text-color);
font-size: 14px;
margin: 0;
margin-bottom: 15px;
&::-moz-focus-inner {
border: 0;
}
&::-moz-focus-inner,
&:focus,
&:active {
outline: 0 !important;
}
&:focus {
background: var(--brand-color-faint);
}
@media screen and (max-width: 600px) {
font-size: 16px;
}
}
.embed-modal__iframe {
width: 100%;
max-width: 100%;
overflow: hidden;
border: 0;
iframe {
width: 100%;
}
}
}
}
.modal-container--preloader {
background: var(--brand-color-med);
}
.column-inline-form {
padding: 7px 15px;
padding-right: 5px;
display: flex;
justify-content: flex-start;
align-items: center;
background: var(--brand-color-faint);
label {
flex: 1 1 auto;
input {
width: 100%;
margin-bottom: 6px;
&:focus {
outline: 0;
}
}
}
.icon-button {
flex: 0 0 auto;
margin: 0 5px;
}
}

@ -0,0 +1,138 @@
.navigation-bar {
padding: 10px;
display: flex;
align-items: center;
flex-shrink: 0;
cursor: default;
color: var(--primary-text-color-faint);
strong {
color: var(--primary-text-color-faint);
}
a {
color: inherit;
}
.permalink {
text-decoration: none;
}
.navigation-bar__actions {
position: relative;
.icon-button.close {
position: absolute;
pointer-events: none;
transform: scale(0, 1) translate(-100%, 0);
opacity: 0;
}
.compose__action-bar .icon-button {
pointer-events: auto;
transform: scale(1, 1) translate(0, 0);
opacity: 1;
}
}
}
.navigation-bar__profile {
flex: 1 1 auto;
margin-left: 8px;
line-height: 20px;
margin-top: -1px;
overflow: hidden;
}
.navigation-bar__profile-account {
display: block;
font-weight: 500;
overflow: hidden;
text-overflow: ellipsis;
}
.navigation-bar__profile-edit {
color: inherit;
text-decoration: none;
}
@media screen and (max-width: 630px) and (max-height: 400px) {
$duration: 400ms;
$delay: 100ms;
.tabs-bar,
.search {
will-change: margin-top;
transition: margin-top $duration $delay;
}
.navigation-bar {
will-change: padding-bottom;
transition: padding-bottom $duration $delay;
}
.navigation-bar {
& > a:first-child {
will-change: margin-top, margin-left, margin-right, width;
transition: margin-top $duration $delay, margin-left $duration ($duration + $delay), margin-right $duration ($duration + $delay);
}
& > .navigation-bar__profile-edit {
will-change: margin-top;
transition: margin-top $duration $delay;
}
.navigation-bar__actions {
& > .icon-button.close {
will-change: opacity transform;
transition: opacity $duration * 0.5 $delay,
transform $duration $delay;
}
& > .compose__action-bar .icon-button {
will-change: opacity transform;
transition: opacity $duration * 0.5 $delay + $duration * 0.5,
transform $duration $delay;
}
}
}
.is-composing {
.tabs-bar,
.search {
margin-top: -50px;
}
.navigation-bar {
padding-bottom: 0;
& > a:first-child {
margin: -100px 10px 0 -50px;
}
.navigation-bar__profile {
padding-top: 2px;
}
.navigation-bar__profile-edit {
position: absolute;
margin-top: -60px;
}
.navigation-bar__actions {
.icon-button.close {
pointer-events: auto;
opacity: 1;
transform: scale(1, 1) translate(0, 0);
bottom: 5px;
}
.compose__action-bar .icon-button {
pointer-events: none;
opacity: 0;
transform: scale(0, 1) translate(100%, 0);
}
}
}
}
}

@ -0,0 +1,53 @@
.notification-favourite {
.status.status-direct {
background: transparent;
.icon-button.disabled {
color: rgba(var(--brand-color-rgb), 0.2);
}
}
}
.notification__message {
margin: 0 10px 0 68px;
padding: 8px 0 0;
cursor: default;
color: var(--primary-text-color-faint);
font-size: 15px;
line-height: 22px;
position: relative;
.fa {
color: var(--highlight-text-color);
}
> span {
display: inline;
overflow: hidden;
text-overflow: ellipsis;
}
}
.notification__favourite-icon-wrapper {
left: -26px;
position: absolute;
.star-icon {
color: $gold-star;
}
}
.notification__display-name {
color: inherit;
font-weight: 500;
text-decoration: none;
&:hover {
color: var(--primary-text-color);
text-decoration: underline;
}
}
.notification__relative_time {
float: right;
}

@ -0,0 +1,135 @@
.profile-info-panel {
display: block;
position: relative;
&__content {
display: flex;
flex-direction: column;
flex: 1 1;
@media (min-width: 895px) {
padding-top: 60px;
}
}
.profile-info-panel-content {
display: flex;
&__badges {
display: flex;
margin: 5px 0;
flex-direction: row;
flex-wrap: wrap;
&__join-date {
display: block;
margin-top: 5px;
.fa {
margin-right: 8px;
}
span {
color: var(--primary-text-color);
font-size: 15px;
line-height: 1.25;
}
}
}
&__name {
display: block;
.account-role {
vertical-align: top;
}
.emojione {
width: 22px;
height: 22px;
}
// Hide "verified" emoji to avoid confusion
.emojione[alt*="verified"] {
display: none;
}
h1 {
span:first-of-type {
font-size: 20px !important;
line-height: 1.25;
color: var(--primary-text-color);
font-weight: 600 !important;
max-width: 260px;
}
small {
display: block;
font-size: 16px;
line-height: 1.5;
color: var(--primary-text-color-faint);
font-weight: 400;
overflow: hidden;
text-overflow: ellipsis;
}
}
}
&__bio {
display: block;
flex: 1 1;
color: var(--primary-text-color);
margin: 15px 0;
font-size: 15px;
line-height: 1.25;
a {
color: var(--highlight-text-color);
}
}
&__fields {
display: flex;
flex-direction: column;
border-top: 1px solid var(--brand-color-med);
padding: 10px 0;
margin: 5px 0;
@media screen and (max-width: 895px) {
border-bottom: 1px solid var(--brand-color-med);
}
a {
color: var(--highlight-text-color);
}
dl:first-child .verified {
border-radius: 0 4px 0 0;
}
.verified a {
color: $valid-value-color;
}
&__item {
display: block;
padding: 2px 0;
margin: 2px 0;
flex: 1 1;
* {
font-size: 15px;
line-height: 24px;
}
dt {
min-width: 26px;
}
dd {
padding-left: 4px;
}
}
}
}
}

@ -0,0 +1,51 @@
.promo-panel {
margin-top: 10px;
background-color: transparent !important;
overflow: hidden;
}
.promo-panel-item {
@include standard-panel-shadow;
display: block;
height: 42px;
line-height: 42px;
border-bottom: 1px solid var(--brand-color-med);
background: var(--foreground-color);
&--highlighted {
background-color: #30ce7d;
border-radius: 10px;
font-weight: 600;
margin-bottom: 10px;
}
&--top-rounded {
border-top-right-radius: 10px;
border-top-left-radius: 10px;
}
&:last-of-type {
border-bottom: 0;
}
&__btn {
display: block;
text-align: left;
color: var(--primary-text-color);
text-decoration: none;
font-size: 15px;
padding: 0 20px;
&:hover {
color: var(--primary-text-color-faint);
span {
text-decoration: underline;
}
}
}
&__icon {
margin-right: 12px;
}
}

@ -0,0 +1,105 @@
.react-toggle {
display: inline-block;
position: relative;
cursor: pointer;
background-color: transparent;
border: 0;
padding: 0;
user-select: none;
-webkit-tap-highlight-color: rgba($base-overlay-background, 0);
-webkit-tap-highlight-color: transparent;
}
.react-toggle-screenreader-only {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
.react-toggle--disabled {
cursor: not-allowed;
opacity: 0.5;
transition: opacity 0.25s;
}
.react-toggle-track {
width: 50px;
height: 24px;
padding: 0;
border-radius: 30px;
background-color: var(--brand-color);
transition: background-color 0.2s ease;
}
.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {
background-color: var(--brand-color-hicontrast);
}
.react-toggle--checked .react-toggle-track {
background-color: var(--brand-color);
}
.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {
background-color: var(--brand-color-hicontrast);
}
.react-toggle-track-check {
position: absolute;
width: 14px;
height: 10px;
top: 0;
bottom: 0;
margin-top: auto;
margin-bottom: auto;
line-height: 0;
left: 8px;
opacity: 0;
transition: opacity 0.25s ease;
}
.react-toggle--checked .react-toggle-track-check {
opacity: 1;
transition: opacity 0.25s ease;
}
.react-toggle-track-x {
position: absolute;
width: 10px;
height: 10px;
top: 0;
bottom: 0;
margin-top: auto;
margin-bottom: auto;
line-height: 0;
right: 10px;
opacity: 1;
transition: opacity 0.25s ease;
}
.react-toggle--checked .react-toggle-track-x {
opacity: 0;
}
.react-toggle-thumb {
position: absolute;
top: 1px;
left: 1px;
width: 22px;
height: 22px;
border: 1px solid var(--brand-color-med);
border-radius: 50%;
background-color: var(--background-color);
box-sizing: border-box;
transition: all 0.25s ease;
transition-property: border-color, left;
}
.react-toggle--checked .react-toggle-thumb {
left: 27px;
border-color: var(--brand-color);
}

@ -0,0 +1,51 @@
.reply-indicator {
border-radius: 4px;
margin-bottom: 10px;
background: var(--brand-color-faint);
padding: 10px;
min-height: 23px;
overflow-y: auto;
flex: 0 2 auto;
max-height: 500px;
@media screen and (min-width: 320px) and (max-width: 375px) {max-height: 220px;}
@media screen and (max-width: 320px) {max-height: 130px;}
}
.reply-indicator__header {
margin-bottom: 5px;
overflow: hidden;
}
.reply-indicator__cancel {
float: right;
line-height: 24px;
}
.reply-indicator__display-name {
color: var(--primary-text-color);
display: block;
max-width: 100%;
line-height: 24px;
overflow: hidden;
padding-right: 25px;
text-decoration: none;
.display-name__account {
color: var(--primary-text-color-faint);
}
}
.reply-indicator__display-avatar {
float: left;
margin-right: 5px;
}
.reply-indicator__content {
color: var(--primary-text-color);
font-size: 14px;
user-select: text;
a {
color: var(--highlight-text-color);
}
}

@ -0,0 +1,162 @@
@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {
.search-page .search {
display: none;
}
}
.search {
position: relative;
}
.search__input {
@include search-input;
display: block;
padding: 7px 30px 6px 10px;
}
.search__icon {
&::-moz-focus-inner {
border: 0;
}
&::-moz-focus-inner,
&:focus {
outline: 0 !important;
}
.fa {
@include font-size(16);
cursor: default;
display: inline-block;
position: absolute;
top: 8px;
right: 8px;
z-index: 2;
width: 18px;
height: 18px;
color: var(--primary-text-color-faint);
opacity: 0;
pointer-events: none;
&.active {
pointer-events: auto;
opacity: 1;
}
}
.fa-search.active {pointer-events: none;}
.fa-times-circle {
@include font-size(17);
cursor: pointer;
color: var(--highlight-text-color);
&:hover {color: var(--brand-color);}
}
}
.search-results__header {
color: var(--primary-text-color);
background: var(--brand-color-med);
padding: 15px;
font-weight: 500;
font-size: 16px;
cursor: default;
.fa {
display: inline-block;
margin-right: 5px;
}
}
.search-results__section {
margin-bottom: 5px;
h5 {
background: var(--brand-color-faint);
border-bottom: 1px solid var(--brand-color-faint);
cursor: default;
display: flex;
padding: 15px;
font-weight: 500;
font-size: 16px;
color: var(--primary-text-color);
.fa {
display: inline-block;
margin-right: 5px;
}
}
.account:last-child,
& > div:last-child .status {
border-bottom: 0;
}
}
.search-results__hashtag {
display: block;
padding: 10px;
color: var(--primary-text-color-faint);
text-decoration: none;
&:hover,
&:active,
&:focus {
color: var(--primary-text-color);
text-decoration: underline;
}
}
.search-header {
display: block;
width: 100%;
&__text-container {
display: none;
padding: 25px 0;
background-color: var(--brand-color-med);
@media (min-width: 895px) {
display: block;
}
}
&__title-text {
color: var(--primary-text-color);
font-size: 27px;
font-weight: bold;
line-height: 32px;
overflow: hidden;
padding-left: 20px;
text-overflow: ellipsis;
white-space: nowrap;
max-width: 1200px;
margin: 0 auto;
}
&__type-filters-tabs {
display: flex;
width: 100%;
max-width: 1200px;
margin: 0 auto;
@media screen and (max-width: 895px) {
max-width: 580px;
}
}
@media (min-width: 895px) and (max-width: 1190px) {
&__title-text,
&__type-filters-tabs {
max-width: 900px;
}
}
}
.search-popout-container {
width: 251px;
@media screen and (max-width: $nav-breakpoint-2) {width: 100%;}
}
.search-popout {
@include search-popout;
}

@ -0,0 +1,12 @@
.setting-toggle {
display: block;
line-height: 24px;
}
.setting-toggle__label {
color: var(--primary-text-color-faint);
display: inline-block;
margin-bottom: 14px;
margin-left: 8px;
vertical-align: middle;
}

@ -152,7 +152,7 @@
font-weight: 400;
&:hover {
background-color: rgba($gab-brand-default, 0.1);
background-color: rgba(var(--brand-color-rgb), 0.1);
.fa {
color: #000;

@ -0,0 +1,46 @@
.spoiler-button {
top: 0;
left: 0;
width: 100%;
height: 100%;
position: absolute;
z-index: 100;
&--minified {
display: block;
left: 4px;
top: 4px;
width: auto;
height: auto;
}
&--hidden {
display: none;
}
&__overlay {
display: block;
background: transparent;
width: 100%;
height: 100%;
border: 0;
&__label {
display: inline-block;
background: rgba($base-overlay-background, 0.5);
border-radius: 8px;
padding: 8px 12px;
color: var(--primary-text-color);
font-weight: 500;
font-size: 14px;
}
&:hover,
&:focus,
&:active {
.spoiler-button__overlay__label {
background: rgba($base-overlay-background, 0.8);
}
}
}
}

@ -0,0 +1,558 @@
.status__content--with-action {
cursor: pointer;
}
.status__content.status__content--collapsed {
max-height: 20px * 15; // 15 lines is roughly above 500 characters
}
.status__content__read-more-button {
display: block;
font-size: 15px;
line-height: 20px;
color: var(--highlight-text-color);
border: 0;
background: transparent;
padding: 0;
padding-top: 8px;
&:hover,
&:active {
text-decoration: underline;
}
}
.status__content__spoiler-link {
display: inline-block;
border-radius: 2px;
background: transparent;
border: 0;
color: var(--primary-text-color);
font-weight: 700;
font-size: 11px;
padding: 0 6px;
text-transform: uppercase;
line-height: 20px;
cursor: pointer;
vertical-align: middle;
}
.status__wrapper--filtered {
color: var(--primary-text-color);
border: 0;
font-size: inherit;
text-align: center;
line-height: inherit;
margin: 0;
padding: 15px;
box-sizing: border-box;
width: 100%;
clear: both;
border-bottom: 1px solid var(--brand-color-med);
}
.status__prepend-icon-wrapper {
left: -26px;
position: absolute;
}
.status {
padding: 8px 10px;
padding-left: 68px;
position: relative;
min-height: 54px;
border-bottom: 1px solid var(--brand-color-faint);
cursor: default;
@supports (-ms-overflow-style: -ms-autohiding-scrollbar) {
// Add margin to avoid Edge auto-hiding scrollbar appearing over content.
// On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.
padding-right: 26px; // 10px + 16px
}
@keyframes fade {
0% { opacity: 0; }
100% { opacity: 1; }
}
opacity: 1;
animation: fade 150ms linear;
.video-player {
margin-top: 8px;
}
&.status-direct:not(.read) {
background: var(--brand-color-med);
border-bottom-color: var(--brand-color-med);
.status__content a {
color: var(--brand-color-hicontrast);
}
}
&.light {
.status__relative-time {
color: var(--primary-text-color-faint);
}
.status__display-name {
color: var(--primary-text-color-faint);
}
.display-name {
strong {
color: var(--primary-text-color);
}
span {
color: var(--primary-text-color-faint);
}
}
.status__content {
color: var(--primary-text-color);
a {
color: var(--highlight-text-color);
}
a.status__content__spoiler-link {
color: var(--primary-text-color);
background: var(--brand-color);
&:hover {
background: var(--brand-color);
}
}
}
}
&__meta {
font-size: 14px;
color: var(--primary-text-color-faint);
a {
color: var(--brand-color);
font-weight: bold;
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
}
}
.status__display-name {
color: var(--primary-text-color-faint);
}
.status__info .status__display-name {
display: block;
max-width: 100%;
padding-right: 25px;
}
.status__info {
font-size: 15px;
z-index: 4;
}
.status-check-box {
border-bottom: 1px solid var(--background-color);
display: flex;
.status-check-box__status {
margin: 10px 0 10px 10px;
flex: 1;
.media-gallery {
max-width: 250px;
}
.status__content {
padding: 0;
white-space: normal;
}
.video-player {
margin-top: 8px;
max-width: 250px;
}
.media-gallery__item-thumbnail {
cursor: default;
}
}
}
.status-check-box-toggle {
align-items: center;
display: flex;
flex: 0 0 auto;
justify-content: center;
padding: 10px;
}
.status__prepend {
margin-left: 68px;
color: var(--primary-text-color);
padding: 8px 0;
padding-bottom: 2px;
font-size: 14px;
position: relative;
.status__display-name strong {
color: var(--primary-text-color);
}
> span {
display: block;
overflow: hidden;
text-overflow: ellipsis;
}
}
.status__action-bar {
align-items: center;
display: flex;
margin-top: 25px;
z-index: 4;
&__counter {
display: inline-flex;
margin-right: 22px;
align-items: center;
.status__action-bar-button {
margin-right: 4px;
}
&__label {
display: inline-block;
width: 14px;
font-size: 12px;
font-weight: 500;
color: var(--brand-color);
}
}
}
.status__action-bar-button {
margin-right: 18px;
}
.status__action-bar-dropdown {
height: 23.15px;
width: 23.15px;
}
.status__avatar {
height: 48px;
left: 10px;
position: absolute;
top: 10px;
width: 48px;
}
.status__expand {
width: 68px;
position: absolute;
left: 0;
top: 0;
height: 100%;
cursor: pointer;
}
.status__content,
.reply-indicator__content {
position: relative;
font-size: 15px;
line-height: 20px;
word-wrap: break-word;
font-weight: 400;
overflow: hidden;
text-overflow: ellipsis;
padding-top: 2px;
color: var(--primary-text-color);
&:focus {
outline: 0;
}
&.status__content--with-spoiler {
white-space: normal;
.status__content__text {
white-space: pre-wrap;
}
}
.emojione {
width: 20px;
height: 20px;
margin: -3px 0 0;
}
p {
margin-bottom: 20px;
white-space: pre-wrap;
&:last-child {
margin-bottom: 2px;
}
}
a {
color: var(--highlight-text-color);
text-decoration: none;
&:hover {
text-decoration: underline;
.fa {
color: var(--primary-text-color);
}
}
&.mention {
&:hover {
text-decoration: none;
span {
text-decoration: underline;
}
}
}
.fa {
color: var(--primary-text-color);
}
}
.status__content__spoiler-link {
background: var(--brand-color-med);
transition: 0.2s;
&:hover {
background: rgba(var(--brand-color-rgb), 0.5);
text-decoration: none;
}
&::-moz-focus-inner {
border: 0;
}
&::-moz-focus-inner,
&:focus,
&:active {
outline: 0 !important;
}
}
.status__content__text {
display: none;
&.status__content__text--visible {
display: block;
}
}
}
.focusable {
&:focus {
outline: 0;
background: var(--brand-color-faint);
.status.status-direct {
background: var(--brand-color-med);
&.muted {
background: transparent;
}
}
.detailed-status,
.detailed-status__action-bar {
background: var(--brand-color-med);
}
}
}
.status-card {
display: flex;
font-size: 14px;
border: 1px solid var(--brand-color-med);
border-radius: 4px;
color: var(--primary-text-color);
margin-top: 14px;
text-decoration: none;
overflow: hidden;
&__actions {
bottom: 0;
left: 0;
position: absolute;
right: 0;
top: 0;
display: flex;
justify-content: center;
align-items: center;
& > div {
background: rgba($base-shadow-color, 0.6);
border-radius: 8px;
padding: 12px 9px;
flex: 0 0 auto;
display: flex;
justify-content: center;
align-items: center;
}
button,
a {
display: inline;
color: var(--primary-text-color-faint);
background: transparent;
border: 0;
padding: 0 8px;
text-decoration: none;
font-size: 18px;
line-height: 18px;
&:hover,
&:active,
&:focus {
color: var(--primary-text-color);
}
}
a {
font-size: 19px;
position: relative;
bottom: -1px;
}
}
}
a.status-card {
cursor: pointer;
&:hover {
background: var(--brand-color-med);
}
}
.status-card-photo {
cursor: zoom-in;
display: block;
text-decoration: none;
width: 100%;
height: auto;
margin: 0;
}
.status-card-video {
iframe {
width: 100%;
height: 100%;
}
}
.status-card__title {
display: block;
font-weight: 500;
margin-bottom: 5px;
color: var(--primary-text-color-faint);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
text-decoration: none;
}
.status-card__content {
flex: 1 1 auto;
overflow: hidden;
padding: 14px 14px 14px 8px;
}
.status-card__description {
color: var(--primary-text-color-faint);
}
.status-card__host {
display: block;
margin-top: 5px;
font-size: 13px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.status-card__image {
flex: 0 0 100px;
background: var(--brand-color-med);
position: relative;
& > .fa {
font-size: 21px;
position: absolute;
transform-origin: 50% 50%;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
}
.status-card.horizontal {
display: block;
.status-card__image {
width: 100%;
}
.status-card__image-image {
border-radius: 4px 4px 0 0;
}
.status-card__title {
white-space: inherit;
}
}
.status-card.compact {
border-color: var(--brand-color-faint);
&.interactive {
border: 0;
}
.status-card__content {
padding: 8px;
padding-top: 10px;
}
.status-card__title {
white-space: nowrap;
}
.status-card__image {
flex: 0 0 60px;
}
}
a.status-card.compact:hover {
background-color: var(--brand-color-faint);
}
.status-card__image-image {
border-radius: 4px 0 0 4px;
display: block;
margin: 0;
width: 100%;
height: 100%;
object-fit: cover;
background-size: cover;
background-position: center center;
}

@ -1,9 +1,7 @@
$nav-ui-background-color: $gab-brand-default !default;
.tabs-bar {
display: flex;
box-sizing: border-box;
background: $nav-ui-background-color;
background: var(--brand-color);
flex: 0 0 auto;
overflow-y: auto;
height: 50px;
@ -119,15 +117,18 @@ $nav-ui-background-color: $gab-brand-default !default;
width: 65px;
height: 34px;
margin-left: 20px;
border-radius: 4px;
background-color: $nav-ui-highlight-color !important;
transition: background-color 0.2s;
border-radius: 6px;
background-color: var(--accent-color);
font-weight: bold;
font-size: 16px;
transition: 0.2s;
&:hover {
background-color: darken($nav-ui-highlight-color, 10%) !important;
box-shadow: inset 0 0 6px darken($gab-brand-default, 10%);
background-color: rgb(
calc(var(--accent-color-r) + 10),
calc(var(--accent-color-g) + 10),
calc(var(--accent-color-b) + 10)
);
}
}
@ -152,6 +153,9 @@ $nav-ui-background-color: $gab-brand-default !default;
position: relative;
align-items: center;
padding-right: 4px;
font-weight: bold;
transition: 0.1s;
outline: none;
@media screen and (max-width: 895px) {
width: 36px;
@ -203,18 +207,35 @@ $nav-ui-background-color: $gab-brand-default !default;
&::before {
content: "";
display: block;
width: 100%;
height: 0;
background: $nav-ui-highlight-color;
background: var(--accent-color);
position: absolute;
bottom: 0;
left: 0;
transition: 0.2s;
left: 0;
bottom: auto;
opacity: 0;
height: 15px;
border-radius: 999px;
z-index: -1;
width: calc(100% + 20px);
margin-left: -12px;
@media screen and (max-width: 895px) {
height: 0;
border-radius: 3px 3px 0 0;
bottom: 0;
}
}
&.active::before,
&:hover::before {
height: 30px;
opacity: 1;
@media screen and (max-width: 895px) {
height: 7px;
width: 36px;
margin: 0;
}
}
&--logo {
@ -249,10 +270,20 @@ $nav-ui-background-color: $gab-brand-default !default;
.tabs-bar__split--left:hover .tabs-bar__link {
&::before {
height: 15px;
opacity: 0;
@media screen and (max-width: 895px) {
height: 0;
}
}
&:hover::before {
height: 30px;
opacity: 1;
@media screen and (max-width: 895px) {
height: 7px;
}
}
}

@ -0,0 +1,32 @@
.timeline-queue-header {
display: block;
width: 100%;
max-height: 46px;
position: relative;
border-bottom: 1px solid;
border-top: 1px solid;
border-color: var(--brand-color-faint);
transition: max-height 150ms ease;
overflow: hidden;
opacity: 1;
&.hidden {
max-height: 0;
opacity: 0;
}
&__btn {
display: block;
width: 100%;
height: 100%;
text-align: center;
line-height: 46px;
font-size: 14px;
cursor: pointer;
color: var(--primary-text-color);
span {
height: 46px;
}
}
}

@ -0,0 +1,78 @@
.trends {
&__header {
color: var(--primary-text-color);
background: var(--brand-color-faint);
border-bottom: 1px solid var(--brand-color-med);
font-weight: 500;
padding: 15px;
font-size: 16px;
cursor: default;
.fa {
display: inline-block;
margin-right: 5px;
}
}
&__item {
display: flex;
align-items: center;
padding: 15px;
border-bottom: 1px solid var(--brand-color-med);
&:last-child {
border-bottom: 0;
}
&__name {
flex: 1 1 auto;
color: var(--primary-text-color);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 13px;
strong {
font-weight: bold;
}
a {
color: var(--primary-text-color-faint);
text-decoration: none;
font-size: 14px;
font-weight: 500;
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
&:hover,
&:focus,
&:active {
span {
text-decoration: underline;
}
}
}
}
&__current {
flex: 0 0 auto;
width: 100px;
font-size: 24px;
line-height: 36px;
font-weight: 500;
text-align: center;
color: var(--primary-text-color-faint);
}
&__sparkline {
flex: 0 0 auto;
width: 50px;
path {
stroke: var(--highlight-text-color) !important;
}
}
}
}

@ -1,5 +1,5 @@
.user-panel {
@include gab-container-standards;
@include standard-panel;
display: flex;
width: 265px;
flex-direction: column;
@ -9,7 +9,7 @@
display: block;
height: 112px;
width: 100%;
background: lighten($gab-background-container, 4%);
background: var(--brand-color-faint);
img {
display: block;
@ -30,7 +30,7 @@
display: block;
width: 82px;
height: 82px;
border: 6px solid $gab-background-base;
border: 6px solid var(--foreground-color);
background-size: cover;
}
}
@ -38,12 +38,13 @@
&__meta {
display: block;
padding: 6px 20px 17px;
opacity: 0.6;
}
&__account {
a {
text-decoration: none;
color: $primary-text-color;
color: var(--primary-text-color);
}
&__name {
@ -51,7 +52,7 @@
font-size: 20px;
font-weight: bold;
line-height: 24px;
color: #fff;
color: var(--primary-text-color);
}
&:hover & {
@ -64,7 +65,7 @@
display: block;
font-size: 14px;
line-height: 16px;
color: $gab-secondary-text;
color: var(--primary-text-color-faint);
text-decoration: none !important;
}
}
@ -84,8 +85,7 @@
a {
text-decoration: none;
color: $primary-text-color;
color: var(--primary-text-color);
&:hover {
opacity: 0.8;
@ -95,7 +95,7 @@
&__value {
display: block;
width: 100%;
color: #fff;
color: var(--primary-text-color);
font-size: 20px;
font-weight: 800;
line-height: 24px;
@ -104,7 +104,7 @@
&__label {
display: block;
width: 100%;
color: $gab-secondary-text;
color: var(--primary-text-color-faint);
font-size: 12px;
line-height: 14px;
}

@ -0,0 +1,388 @@
.video-error-cover {
align-items: center;
background: var(--background-color);
color: var(--primary-text-color);
cursor: pointer;
display: flex;
flex-direction: column;
height: 100%;
justify-content: center;
margin-top: 8px;
position: relative;
text-align: center;
z-index: 100;
}
.status__video-player {
background: var(--background-color);
box-sizing: border-box;
cursor: default; /* May not be needed */
margin-top: 8px;
overflow: hidden;
position: relative;
}
.status__video-player-video {
height: 100%;
object-fit: cover;
position: relative;
top: 50%;
transform: translateY(-50%);
width: 100%;
z-index: 1;
}
.status__video-player-expand,
.status__video-player-mute {
color: var(--primary-text-color);
opacity: 0.8;
position: absolute;
right: 4px;
text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
}
.status__video-player-spoiler {
display: none;
color: var(--primary-text-color);
left: 4px;
position: absolute;
text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
top: 4px;
z-index: 100;
&.status__video-player-spoiler--visible {
display: block;
}
}
.status__video-player-expand {
bottom: 4px;
z-index: 100;
}
.status__video-player-mute {
top: 4px;
z-index: 5;
}
.detailed,
.fullscreen {
.video-player__volume__current,
.video-player__volume::before {
bottom: 27px;
}
.video-player__volume__handle {
bottom: 23px;
}
}
.video-player {
overflow: hidden;
position: relative;
background: $base-shadow-color;
max-width: 100%;
border-radius: 4px;
&:focus {
outline: 0;
}
video {
max-width: 100vw;
max-height: 80vh;
min-height: 120px;
object-fit: contain;
z-index: 1;
}
&.fullscreen {
width: 100% !important;
height: 100% !important;
margin: 0;
video {
max-width: 100% !important;
max-height: 100% !important;
width: 100% !important;
height: 100% !important;
}
}
&.inline {
video {
object-fit: contain;
position: relative;
}
}
&__controls {
position: absolute;
z-index: 2;
bottom: 0;
left: 0;
right: 0;
box-sizing: border-box;
background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);
padding: 0 15px;
opacity: 0;
transition: opacity .1s ease;
&.active {
opacity: 1;
}
}
&.inactive {
video,
.video-player__controls {
visibility: hidden;
}
}
&__spoiler {
display: none;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 4;
border: 0;
background: var(--background-color);
color: var(--primary-text-color-faint);
transition: none;
pointer-events: none;
&.active {
display: block;
pointer-events: auto;
&:hover,
&:active,
&:focus {
color: var(--primary-text-color);
}
}
&__title {
display: block;
font-size: 14px;
}
&__subtitle {
display: block;
font-size: 11px;
font-weight: 500;
}
}
&__buttons-bar {
display: flex;
justify-content: space-between;
padding-bottom: 10px;
}
&__buttons {
font-size: 16px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
&.left {
button {
padding-left: 0;
}
}
&.right {
button {
padding-right: 0;
}
}
button {
background: transparent;
padding: 2px 10px;
font-size: 16px;
border: 0;
color: rgba(#ffffff, 0.75);
&:active,
&:hover,
&:focus {
color: #ffffff;
}
}
}
&__time-sep,
&__time-total,
&__time-current {
font-size: 14px;
font-weight: 500;
}
&__time-current {
color: #ffffff;
margin-left: 60px;
}
&__time-sep {
display: inline-block;
margin: 0 6px;
}
&__time-sep,
&__time-total {
color: #ffffff;
}
&__volume {
cursor: pointer;
height: 24px;
display: inline;
&::before {
content: "";
width: 50px;
background: rgba(#ffffff, 0.35);
border-radius: 4px;
display: block;
position: absolute;
height: 4px;
left: 70px;
bottom: 20px;
}
&__current {
display: block;
position: absolute;
height: 4px;
border-radius: 4px;
left: 70px;
bottom: 20px;
background: var(--brand-color);
}
&__handle {
position: absolute;
z-index: 3;
border-radius: 50%;
width: 12px;
height: 12px;
bottom: 16px;
left: 70px;
transition: opacity .1s ease;
background: var(--brand-color);
box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);
pointer-events: none;
}
}
&__link {
padding: 2px 10px;
a {
text-decoration: none;
font-size: 14px;
font-weight: 500;
color: #ffffff;
&:hover,
&:active,
&:focus {
text-decoration: underline;
}
}
}
&__seek {
cursor: pointer;
height: 24px;
position: relative;
&::before {
content: "";
width: 100%;
background: rgba(#ffffff, 0.35);
border-radius: 4px;
display: block;
position: absolute;
height: 4px;
top: 10px;
}
&__progress,
&__buffer {
display: block;
position: absolute;
height: 4px;
border-radius: 4px;
top: 10px;
background: var(--brand-color);
}
&__buffer {
background: rgba(#ffffff, 0.2);
}
&__handle {
position: absolute;
z-index: 3;
opacity: 0;
border-radius: 50%;
width: 12px;
height: 12px;
top: 6px;
margin-left: -6px;
transition: opacity .1s ease;
background: var(--brand-color);
box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);
pointer-events: none;
&.active {
opacity: 1;
}
}
&:hover {
.video-player__seek__handle {
opacity: 1;
}
}
}
&.detailed,
&.fullscreen {
.video-player__buttons {
button {
padding-top: 10px;
padding-bottom: 10px;
}
}
}
}
.media-spoiler-video {
background-size: cover;
background-repeat: no-repeat;
background-position: center;
cursor: pointer;
margin-top: 8px;
position: relative;
border: 0;
display: block;
}
.media-spoiler-video-play-icon {
border-radius: 100px;
color: var(--primary-text-color-faint);
font-size: 36px;
left: 50%;
padding: 5px;
position: absolute;
top: 50%;
transform: translate(-50%, -50%);
}

@ -0,0 +1,128 @@
.wtf-panel {
@include standard-panel-shadow;
display: flex;
width: 100%;
border-radius: 10px;
flex-direction: column;
height: auto;
box-sizing: border-box;
background: var(--foreground-color);
&:not(:last-of-type) {
margin-bottom: 10px;
}
.wtf-panel-header {
display: flex;
align-items: baseline;
margin-bottom: 10px;
padding: 15px 15px 0;
&__icon {
margin-right: 10px;
}
&__label {
flex: 1 1;
color: var(--primary-text-color);
font-size: 16px;
font-weight: bold;
line-height: 19px;
}
}
&__content {
width: 100%;
padding-top: 8px;
}
&__list {
padding: 0 5px;
}
&__subtitle {
display: block;
padding: 0 15px;
color: var(--primary-text-color-faint);
}
&__form {
display: block;
padding: 15px;
&.button {
width: 100%;
}
}
.wtf-panel-list-item {
display: block;
padding-bottom: 10px;
&:not(:first-of-type) {
margin-top: 12px;
}
&:not(:last-of-type) {
border-bottom: 1px solid var(--brand-color-med);
}
&__content {
display: flex;
flex-direction: row;
min-height: 46px;
margin-left: 58px;
}
&__account-block {
display: flex;
position: relative;
align-items: baseline;
padding-right: 10px;
&__avatar {
height: 46px;
width: 46px;
background-color: #ff0000;
left: -58px;
position: absolute;
}
&__name {
display: flex;
flex-wrap: wrap;
flex-direction: column;
margin-top: 6px;
&__name {
color: var(--primary-text-color);
font-size: 14px;
font-weight: bold;
line-height: 16px;
margin-bottom: 2px;
max-height: 32px; //2 lines of text
overflow: hidden;
}
&__username {
color: var(--highlight-text-color);
font-size: 12px;
line-height: 14px;
}
}
}
&__follow-block {
margin-left: auto;
padding-top: 6px;
&__button {
display: flex;
}
&__icon {
color: var(--primary-text-color);
}
}
}
}

@ -0,0 +1,190 @@
.container-alt {
width: 700px;
margin: 0 auto;
margin-top: 40px;
@media screen and (max-width: 740px) {
width: 100%;
margin: 0;
}
}
.logo-container {
margin: 100px auto 50px;
@media screen and (max-width: 500px) {
margin: 40px auto 0;
}
h1 {
display: flex;
justify-content: center;
align-items: center;
img {
height: 42px;
margin-right: 10px;
}
a {
display: flex;
justify-content: center;
align-items: center;
color: var(--primary-text-color);
text-decoration: none;
outline: 0;
padding: 12px 16px;
line-height: 32px;
font-weight: 500;
font-size: 14px;
}
}
}
.compose-standalone {
.compose-form {
width: 400px;
margin: 0 auto;
padding: 20px 0;
margin-top: 40px;
box-sizing: border-box;
@media screen and (max-width: 400px) {
width: 100%;
margin-top: 0;
padding: 20px;
}
}
}
.account-header {
width: 400px;
margin: 0 auto;
display: flex;
font-size: 13px;
line-height: 18px;
box-sizing: border-box;
padding: 20px 0;
padding-bottom: 0;
margin-bottom: -30px;
margin-top: 40px;
@media screen and (max-width: 440px) {
width: 100%;
margin: 0;
margin-bottom: 10px;
padding: 20px;
padding-bottom: 0;
}
.avatar {
width: 40px;
height: 40px;
margin-right: 8px;
img {
width: 100%;
height: 100%;
display: block;
margin: 0;
border-radius: 4px;
}
}
.name {
flex: 1 1 auto;
color: var(--primary-text-color-faint);
width: calc(100% - 88px);
.username {
display: block;
font-weight: 500;
text-overflow: ellipsis;
overflow: hidden;
}
}
.logout-link {
display: block;
font-size: 32px;
line-height: 40px;
margin-left: 8px;
}
}
.grid-3 {
display: grid;
grid-gap: 10px;
grid-template-columns: 3fr 1fr;
grid-auto-columns: 25%;
grid-auto-rows: max-content;
.column-0 {
grid-column: 1 / 3;
grid-row: 1;
}
.column-1 {
grid-column: 1;
grid-row: 2;
}
.column-2 {
grid-column: 2;
grid-row: 2;
}
.column-3 {
grid-column: 1 / 3;
grid-row: 3;
}
.landing-page__call-to-action {
min-height: 100%;
}
@media screen and (max-width: 738px) {
grid-template-columns: minmax(0, 50%) minmax(0, 50%);
.landing-page__call-to-action {
padding: 20px;
display: flex;
align-items: center;
justify-content: center;
}
.row__information-board {
width: 100%;
justify-content: center;
align-items: center;
}
.row__mascot {
display: none;
}
}
@media screen and (max-width: $no-gap-breakpoint) {
grid-gap: 0;
grid-template-columns: minmax(0, 100%);
.column-0 {
grid-column: 1;
}
.column-1 {
grid-column: 1;
grid-row: 3;
}
.column-2 {
grid-column: 1;
grid-row: 2;
}
.column-3 {
grid-column: 1;
grid-row: 4;
}
}
}

@ -1,3 +0,0 @@
@import 'contrast/variables';
@import 'application';
@import 'contrast/diff';

@ -1,81 +0,0 @@
// components.scss
.compose-form {
.compose-form__modifiers {
.compose-form__upload {
&-description {
input {
&::placeholder {
opacity: 1;
}
}
}
}
}
.compose-form__warning {
color: $inverted-text-color;
}
}
.rich-formatting a,
.rich-formatting p a,
.rich-formatting li a,
.landing-page__short-description p a,
.status__content a,
.reply-indicator__content a {
color: lighten($ui-highlight-color, 12%);
text-decoration: underline;
&.mention {
text-decoration: none;
}
&.mention span {
text-decoration: underline;
&:hover,
&:focus,
&:active {
text-decoration: none;
}
}
&:hover,
&:focus,
&:active {
text-decoration: none;
}
&.status__content__spoiler-link {
color: $secondary-text-color;
text-decoration: none;
}
}
.status__content__read-more-button {
text-decoration: underline;
&:hover,
&:focus,
&:active {
text-decoration: none;
}
}
.getting-started__footer a {
text-decoration: underline;
&:hover,
&:focus,
&:active {
text-decoration: none;
}
}
.nothing-here {
color: $darker-text-color;
}
.public-layout .public-account-header__tabs__tabs .counter.active::after {
border-bottom: 4px solid $ui-highlight-color;
}

@ -1,24 +0,0 @@
// Dependent colors
$black: #000000;
$classic-base-color: #282c37;
$classic-primary-color: #9baec8;
$classic-secondary-color: #d9e1e8;
$classic-highlight-color: #2b90d9;
$ui-base-color: $classic-base-color !default;
$ui-primary-color: $classic-primary-color !default;
$ui-secondary-color: $classic-secondary-color !default;
// Differences
$ui-highlight-color: #2b5fd9;
$darker-text-color: lighten($ui-primary-color, 20%) !default;
$dark-text-color: lighten($ui-primary-color, 12%) !default;
$secondary-text-color: lighten($ui-secondary-color, 6%) !default;
$highlight-text-color: $classic-highlight-color !default;
$action-button-color: #8d9ac2;
$inverted-text-color: $black !default;
$lighter-text-color: darken($ui-base-color, 6%) !default;
$light-text-color: darken($ui-primary-color, 40%) !default;

@ -13,7 +13,7 @@
& > div,
& > a {
padding: 20px;
background: lighten($ui-base-color, 4%);
background: var(--brand-color-faint);
border-radius: 4px;
}
@ -25,7 +25,7 @@
&:hover,
&:focus,
&:active {
background: lighten($ui-base-color, 8%);
background: var(--brand-color-med);
}
}
}
@ -36,8 +36,8 @@
font-weight: 500;
font-size: 24px;
line-height: 21px;
color: $primary-text-color;
font-family: $font-display, sans-serif;
color: var(--primary-text-color);
font-family: var(--font-display), sans-serif;
margin-bottom: 20px;
line-height: 30px;
}
@ -48,7 +48,7 @@
&__label {
font-size: 14px;
color: $gab-secondary-text;
color: var(--primary-text-color-faint);
text-align: center;
font-weight: 500;
}
@ -69,7 +69,7 @@
}
a:not(.name-tag) {
color: $ui-secondary-color;
color: var(--background-color);
font-weight: 500;
text-decoration: none;
}

@ -19,14 +19,14 @@
}
&--active {
background-color: $ui-highlight-color;
color: $primary-text-color;
background-color: var(--brand-color);
color: var(--primary-text-color);
}
}
}
.sub {
border: 1px solid rgba($darker-text-color, 0.5);
border: 1px solid rgba(var(--primary-text-color-rgb), 0.5);
padding: 20px;
position: relative;
border-radius: 4px;
@ -126,7 +126,7 @@
background: transparent;
border: 0;
margin: 0;
color: $primary-text-color;
color: var(--primary-text-color);
appearance: textfield;
&::-webkit-inner-spin-button,
@ -190,7 +190,7 @@ body.admin {
}
&__reached {
color: $gab-brand-default;
color: var(--brand-color);
}
.wtf-panel__content {
@ -203,11 +203,11 @@ body.admin {
height: 8px;
width: 100%;
border-radius: 4px;
background: $gab-background-base-light;
background: var(--background-color);
overflow: hidden;
&__progress {
height: 100%;
background: $gab-brand-default;
background: var(--brand-color);
}
}

@ -1,7 +1,7 @@
.emoji-mart {
font-size: 13px;
display: inline-block;
color: $inverted-text-color;
color: var(--primary-text-color);
&,
* {
@ -15,13 +15,12 @@
}
.emoji-mart-bar {
border: 0 solid darken($ui-secondary-color, 8%);
border: 0 solid var(--background-color);
&:first-child {
border-bottom-width: 1px;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
background: $ui-secondary-color;
}
&:last-child {
@ -36,7 +35,7 @@
display: flex;
justify-content: space-between;
padding: 0 6px;
color: $lighter-text-color;
color: var(--primary-text-color-faint);
line-height: 0;
}
@ -50,15 +49,15 @@
cursor: pointer;
&:hover {
color: darken($lighter-text-color, 4%);
color: var(--primary-text-color-faint);
}
}
.emoji-mart-anchor-selected {
color: $highlight-text-color;
color: var(--highlight-text-color);
&:hover {
color: darken($highlight-text-color, 4%);
color: var(--highlight-text-color);
}
.emoji-mart-anchor-bar {
@ -72,7 +71,7 @@
left: 0;
width: 100%;
height: 4px;
background-color: $highlight-text-color;
background-color: var(--highlight-text-color);
}
.emoji-mart-anchors {
@ -93,7 +92,7 @@
height: 270px;
max-height: 35vh;
padding: 0 6px 6px;
background: $simple-background-color;
background: var(--foreground-color);
will-change: transform;
&::-webkit-scrollbar-track:hover,
@ -105,7 +104,7 @@
.emoji-mart-search {
padding: 10px;
padding-right: 45px;
background: $simple-background-color;
background: var(--foreground-color);
input {
font-size: 14px;
@ -114,10 +113,9 @@
font-family: inherit;
display: block;
width: 100%;
background: rgba($ui-secondary-color, 0.3);
color: $inverted-text-color;
border: 1px solid $ui-secondary-color;
border-radius: 4px;
background: var(--background-color);
border: 1px solid var(--brand-color-faint);
border-radius: 9999px;
&::-moz-focus-inner {
border: 0;
@ -148,7 +146,7 @@
left: 0;
width: 100%;
height: 100%;
background-color: rgba($ui-secondary-color, 0.7);
background-color: rgba(var(--background-color-rgb), 0.7);
border-radius: 100%;
}
}
@ -165,7 +163,7 @@
width: 100%;
font-weight: 500;
padding: 5px 6px;
background: $simple-background-color;
background: var(--foreground-color);
}
}
@ -184,7 +182,7 @@
font-size: 14px;
text-align: center;
padding-top: 70px;
color: $light-text-color;
color: var(--primary-text-color-faint);
.emoji-mart-category-label {
display: none;
@ -202,3 +200,61 @@
.emoji-mart-preview {
display: none;
}
.emoji-picker-dropdown__menu {
@include standard-panel;
background: var(--foreground-color);
position: absolute;
margin-top: 5px;
z-index: 20000;
.emoji-mart-scroll {
transition: opacity 200ms ease;
}
&.selecting .emoji-mart-scroll {
opacity: 0.5;
}
}
.emoji-picker-dropdown__modifiers {
position: absolute;
top: 60px;
right: 11px;
cursor: pointer;
}
.emoji-picker-dropdown__modifiers__menu {
position: absolute;
z-index: 4;
top: -4px;
left: -8px;
background: var(--foreground-color);
border-radius: 4px;
box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);
overflow: hidden;
button {
display: block;
cursor: pointer;
border: 0;
padding: 4px 8px;
background: transparent;
&:hover,
&:focus,
&:active {
background: rgba(var(--background-color-rgb), 0.4);
}
}
.emoji-mart-emoji {
height: 22px;
}
}
.emoji-mart-emoji {
span {
background-repeat: no-repeat;
}
}

@ -6,8 +6,8 @@
justify-content: center;
align-items: center;
margin-top: auto;
background-color: lighten($ui-base-color, 5%);
border-top: darken($ui-base-color, 10%);
color: #fff;
background-color: rgba(0, 0, 0, 0.15);
@media screen and (max-width: 1024px) {
padding: 40px 20px;
@ -34,7 +34,7 @@
text-transform: uppercase;
font-weight: 700;
margin-bottom: 8px;
color: $darker-text-color;
color: var(--primary-text-color-faint);
font-size: 1.6rem;
line-height: 1.5;
@ -48,14 +48,9 @@
margin-right: auto;
span {
color: $primary-text-color;
font-size: 1.3rem;
font-weight: 500;
line-height: 1.5;
&:last-of-type {
color: darken($primary-text-color, 20%);
}
}
}
@ -67,7 +62,7 @@
li {
a {
text-decoration: none;
color: lighten($ui-base-color, 34%);
color: #fff;
font-size: 1.3rem;
font-weight: 500;
line-height: 1.5;

@ -1,7 +1,7 @@
$no-columns-breakpoint: 600px;
code {
font-family: $font-monospace, monospace;
font-family: var(--font-monospace), monospace;
font-weight: 400;
}
@ -49,7 +49,7 @@ code {
font-family: inherit;
font-size: 14px;
padding-top: 5px;
color: $primary-text-color;
color: var(--primary-text-color);
display: block;
width: auto;
}
@ -70,7 +70,7 @@ code {
}
label a {
color: $highlight-text-color;
color: var(--highlight-text-color);
text-decoration: underline;
&:hover,
@ -95,16 +95,16 @@ code {
}
.hint {
color: $gab-secondary-text;
color: var(--primary-text-color-faint);
a {
color: $highlight-text-color;
color: var(--highlight-text-color);
}
code {
border-radius: 3px;
padding: 0.2em 0.4em;
background: darken($ui-base-color, 12%);
background: var(--background-color);
}
}
@ -116,7 +116,7 @@ code {
p.hint {
margin-bottom: 15px;
color: $gab-secondary-text;
color: var(--primary-text-color-faint);
&.subtle-hint {
text-align: center;
@ -148,7 +148,7 @@ code {
& > label {
font-family: inherit;
font-size: 14px;
color: $primary-text-color;
color: var(--primary-text-color);
font-weight: 500;
min-width: 150px;
flex: 0 0 auto;
@ -170,7 +170,7 @@ code {
.label_input > label {
font-family: inherit;
font-size: 14px;
color: $primary-text-color;
color: var(--primary-text-color);
display: block;
margin-bottom: 8px;
word-wrap: break-word;
@ -192,7 +192,7 @@ code {
& > label {
font-family: inherit;
font-size: 16px;
color: $primary-text-color;
color: var(--primary-text-color);
display: block;
font-weight: 500;
padding-top: 5px;
@ -266,7 +266,7 @@ code {
margin-bottom: 5px;
font-family: inherit;
font-size: 14px;
color: $primary-text-color;
color: var(--primary-text-color);
display: block;
width: auto;
}
@ -276,7 +276,7 @@ code {
label {
font-family: inherit;
font-size: 14px;
color: $primary-text-color;
color: var(--primary-text-color);
display: inline-block;
width: auto;
position: relative;
@ -300,8 +300,8 @@ code {
input[type=email],
input[type=password],
textarea {
color: rgba($primary-text-color, 0.5);
border-color: rgba($primary-text-color, 0.5);
color: var(--primary-text-color-faint);
border-color: var(--primary-text-color-faint);
}
}
@ -312,16 +312,17 @@ code {
textarea {
box-sizing: border-box;
font-size: 16px;
color: $primary-text-color;
color: var(--primary-text-color);
display: block;
width: 100%;
outline: 0;
font-family: inherit;
resize: vertical;
background: darken($ui-base-color, 10%);
border: 1px solid darken($ui-base-color, 14%);
background: var(--background-color);
border: 1px solid var(--highlight-text-color);
border-radius: 4px;
padding: 10px;
transition: 0.2s;
&:invalid {
box-shadow: none;
@ -335,14 +336,9 @@ code {
border-color: $valid-value-color;
}
&:hover {
border-color: darken($ui-base-color, 20%);
}
&:active,
&:focus {
border-color: $highlight-text-color;
background: darken($ui-base-color, 8%);
border-color: var(--brand-color-hicontrast);
}
}
@ -389,8 +385,8 @@ code {
width: 100%;
border: 0;
border-radius: 4px;
background: $ui-highlight-color;
color: $primary-text-color;
background: var(--brand-color);
color: #fff;
font-size: 18px;
line-height: inherit;
height: auto;
@ -409,17 +405,10 @@ code {
margin-right: 0;
}
&:hover {
background-color: lighten($ui-highlight-color, 5%);
}
&:hover,
&:active,
&:focus {
background-color: darken($ui-highlight-color, 5%);
}
&:disabled:hover {
background-color: $ui-primary-color;
background-color: var(--brand-color-hicontrast);
}
&.negative {
@ -437,21 +426,21 @@ code {
}
select {
appearance: none;
box-sizing: border-box;
font-size: 16px;
color: $primary-text-color;
color: var(--primary-text-color);
background: var(--background-color);
display: block;
width: 100%;
outline: 0;
font-family: inherit;
resize: vertical;
background: darken($ui-base-color, 10%) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14.933 18.467' height='19.698' width='15.929'><path d='M3.467 14.967l-3.393-3.5H14.86l-3.392 3.5c-1.866 1.925-3.666 3.5-4 3.5-.335 0-2.135-1.575-4-3.5zm.266-11.234L7.467 0 11.2 3.733l3.733 3.734H0l3.733-3.734z' fill='#{hex-color(lighten($ui-base-color, 12%))}'/></svg>") no-repeat right 8px center / auto 16px;
border: 1px solid darken($ui-base-color, 14%);
border: 1px solid var(--highlight-text-color);
border-radius: 4px;
padding-left: 10px;
padding-right: 30px;
height: 41px;
position: relative;
}
.label_input {
@ -466,7 +455,7 @@ code {
padding: 10px;
padding-bottom: 9px;
font-size: 16px;
color: $dark-text-color;
color: var(--primary-text-color);
font-family: inherit;
pointer-events: none;
cursor: default;
@ -482,7 +471,7 @@ code {
right: 0;
bottom: 1px;
width: 5px;
background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));
background-image: linear-gradient(to right, rgba(var(--background-color-rgb), 0), var(--background-color));
}
}
}
@ -499,7 +488,7 @@ code {
display: flex;
justify-content: center;
align-items: center;
background: rgba($ui-base-color, 0.65);
background: var(--background-color);
backdrop-filter: blur(2px);
border-radius: 4px;
@ -509,7 +498,7 @@ code {
&.rich-formatting {
&,
p {
color: $primary-text-color;
color: var(--primary-text-color);
}
}
}
@ -525,8 +514,8 @@ code {
}
.flash-message {
background: lighten($ui-base-color, 8%);
color: $darker-text-color;
background: var(--brand-color-med);
color: var(--primary-text-color-faint);
border-radius: 4px;
padding: 15px 10px;
margin-bottom: 30px;
@ -546,11 +535,11 @@ code {
a {
display: inline-block;
color: $darker-text-color;
color: var(--primary-text-color-faint);
text-decoration: none;
&:hover {
color: $primary-text-color;
color: var(--primary-text-color);
text-decoration: underline;
}
}
@ -566,9 +555,9 @@ code {
width: 100%;
border: 0;
padding: 10px;
font-family: $font-monospace, monospace;
background: $ui-base-color;
color: $primary-text-color;
font-family: var(--font-monospace), monospace;
background: var(--brand-color-med);
color: var(--primary-text-color);
font-size: 14px;
margin: 0;
@ -583,7 +572,7 @@ code {
}
&:focus {
background: lighten($ui-base-color, 4%);
background: var(--brand-color-faint);
}
}
@ -607,7 +596,7 @@ code {
text-align: center;
a {
color: $darker-text-color;
color: var(--primary-text-color-faint);
text-decoration: none;
&:hover {
@ -627,7 +616,7 @@ code {
}
a {
color: $highlight-text-color;
color: var(--highlight-text-color);
text-transform: uppercase;
text-decoration: none;
font-weight: 700;
@ -635,7 +624,7 @@ code {
&:hover,
&:focus,
&:active {
color: lighten($highlight-text-color, 8%);
color: var(--highlight-text-color);
}
}
}
@ -643,7 +632,7 @@ code {
.oauth-prompt,
.follow-prompt {
margin-bottom: 30px;
color: $darker-text-color;
color: var(--primary-text-color-faint);
h2 {
font-size: 16px;
@ -652,7 +641,7 @@ code {
}
strong {
color: $secondary-text-color;
color: var(--primary-text-color-faint);
font-weight: 500;
@each $lang in $cjk-langs {
@ -675,7 +664,7 @@ code {
.qr-code {
flex: 0 0 auto;
background: $simple-background-color;
background: var(--foreground-color);
padding: 4px;
margin: 0 10px 20px 0;
box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
@ -689,7 +678,7 @@ code {
.qr-alternative {
margin-bottom: 20px;
color: $secondary-text-color;
color: var(--primary-text-color-faint);
flex: 150px;
samp {
@ -719,7 +708,7 @@ code {
.warning {
box-sizing: border-box;
background: rgba($error-value-color, 0.5);
color: $primary-text-color;
color: var(--primary-text-color);
text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);
box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);
border-radius: 4px;
@ -727,7 +716,7 @@ code {
margin-bottom: 15px;
a {
color: $primary-text-color;
color: var(--primary-text-color);
text-decoration: underline;
&:hover,
@ -774,7 +763,7 @@ code {
.post-follow-actions {
text-align: center;
color: $darker-text-color;
color: var(--primary-text-color-faint);
div {
margin-bottom: 4px;
@ -787,7 +776,7 @@ code {
h4 {
font-size: 16px;
color: $primary-text-color;
color: var(--primary-text-color);
text-align: center;
margin-bottom: 20px;
border: 0;
@ -810,13 +799,13 @@ code {
.form_admin_settings_custom_css,
.form_admin_settings_closed_registrations_message {
textarea {
font-family: $font-monospace, monospace;
font-family: var(--font-monospace), monospace;
}
}
.input-copy {
background: darken($ui-base-color, 10%);
border: 1px solid darken($ui-base-color, 14%);
background: var(--background-color);
border: 1px solid var(--background-color);
border-radius: 4px;
display: flex;
align-items: center;
@ -834,7 +823,7 @@ code {
border: 0;
padding: 10px;
font-size: 14px;
font-family: $font-monospace, monospace;
font-family: var(--font-monospace), monospace;
}
button {
@ -864,7 +853,7 @@ code {
margin-bottom: 25px;
.fa-link {
background-color: darken($ui-base-color, 4%);
background-color: var(--brand-color-med);
border-radius: 100%;
font-size: 24px;
padding: 10px;
@ -896,7 +885,7 @@ code {
}
&__connection {
background-color: lighten($ui-base-color, 8%);
background-color: var(--brand-color-med);
box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
border-radius: 4px;
padding: 25px 10px;
@ -904,7 +893,7 @@ code {
text-align: center;
&::after {
background-color: darken($ui-base-color, 4%);
background-color: var(--brand-color-med);
content: '';
display: block;
height: 100%;

@ -1,100 +0,0 @@
@import 'soapbox-light/variables';
$glinner-yellow: #fff360;
$glinner-orange: #ffa254;
$glinner-brown: #726253;
$glinner-steel: #b1bcbf;
$glinner-navy: #536172;
$glinner-tan: #e9d5cf;
$glinner-cream: #e8e5dd;
$glinner-mustard: #bcbb65;
$glinner-sky: #aadaea;
$glinner-teal: #267893;
$glinner-dirt: #74733c;
$gab-brand-default: $glinner-teal;
$gab-background-base-light: darken($glinner-sky, 17%);
$gab-background: darken($glinner-cream, 7%);
$ui-base-color: darken($glinner-sky, 17%);
$ui-highlight-color: lighten($glinner-orange, 20%);
$nav-ui-highlight-color: $glinner-sky;
$ui-base-lighter-color: darken($glinner-orange, 35%);
$bg-size: 720px;
@import 'application';
@import 'soapbox-light/diff';
body {
background-color: #bcbb65;
background-image: linear-gradient(to bottom,
$glinner-teal 0%, $glinner-sky 70%,
$glinner-dirt 70%, $glinner-mustard 100%
);
background-repeat: repeat-x;
background-size: auto $bg-size;
}
.public-layout {
background-image: none;
background-color: transparent;
background-repeat: repeat-x;
background-size: auto $bg-size;
.brand {
filter: brightness(0%) invert(100%) drop-shadow(4px 4px lighten($gab-brand-default, 20%));
}
.header .brand {
filter: brightness(0%) invert(100%) drop-shadow(2px 2px lighten($gab-brand-default, 20%));
}
.brand__tagline {
color: #fff;
}
.brand__tagline span {
background: lighten($gab-brand-default, 20%);
}
.header .nav-link {
color: #fff;
filter: drop-shadow(1px 1px lighten($gab-brand-default, 20%));
&:hover,
&:focus,
&:active {
color: $gab-background-base-light;
}
}
.footer {
background-color: #74733c;
ul li a {
color: darken($primary-text-color, 10%);
}
}
}
.ui {
background: $gab-background;
}
.tabs-bar__button-compose {
background-color: darken($glinner-teal, 15%) !important;
&:hover {
background-color: darken($glinner-teal, 20%) !important;
}
}
.icon-with-badge__badge {
background: $ui-highlight-color;
}
@media screen and (max-width: 767px) {
.public-layout .header {
margin-bottom: 70px;
}
}

@ -1,3 +0,0 @@
@import 'halloween/variables';
@import 'application';
@import 'halloween/diff';

@ -1,209 +0,0 @@
@keyframes twinkle {
from { background-position: 0 0; }
to { background-position: -10000px 5000px; }
}
@keyframes clouds {
from { background-position: 0 0; }
to { background-position: 10000px 0; }
}
body::before,
body.app-body::after,
#soapbox::before,
#soapbox::after {
content: '';
display: block;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-size: cover;
background-position: center;
width: 100%;
height: 100%;
z-index: -100;
}
body.app-body {
background-color: $halloween-dark;
background-image: url('../images/starfield.png');
background-size: cover;
background-attachment: fixed;
background-position: center;
}
body::before {
background-image: url('../images/spiderweb.svg');
}
body.app-body::after {
z-index: -101;
background: transparent url("../images/twinkle.svg") repeat top center;
animation: twinkle 200s linear infinite;
}
#soapbox::before {
background-image: radial-gradient(
circle,
transparent 0%,
transparent 60%,
darken($halloween-dark, 30%) 100%
);
}
#soapbox::after {
background: transparent url("../images/clouds.png") repeat top center;
animation: clouds 200s linear infinite;
}
// Dangling spider
.ui .page__top::after,
.ui .page__columns::after {
content: '';
display: block;
width: 100px;
height: 100px;
right: 20px;
background-image: url('../images/spider.svg');
background-size: contain;
background-repeat: no-repeat;
background-position: top right;
z-index: -1;
pointer-events: none;
}
.ui .page__columns::after {
position: fixed;
top: 50px;
}
.ui .page__top::after {
position: absolute;
bottom: -100px;
}
.ui .page__top + .page__columns::after {
display: none;
}
.search__input {
border-color: $halloween-dark;
color: #000;
}
.search__icon .fa-times-circle,
.search__icon .fa {
color: $halloween-dark;
&:hover {
color: lighten($halloween-dark, 10%);
}
}
.search__input::placeholder {
color: darken($halloween-dark, 10%);
}
.admin-wrapper .content h2 {
color: #fff;
}
.compose-form .autosuggest-textarea__textarea,
.compose-form .spoiler-input__input {
color: darken($halloween-dark, 15%);
}
.tabs-bar__button-compose:hover {
background-color: $nav-ui-highlight-color !important;
}
.button {
background-color: $halloween-orange;
color: #000;
&:focus,
&:hover {
background-color: darken($halloween-orange, 10%);
}
}
.simple_form button,
.simple_form .button,
.simple_form .block-button {
color: #000;
}
.getting-started__footer::before {
content: '';
display: block;
background-image: url('../images/halloween-emblem.svg');
background-size: contain;
background-position: left;
background-repeat: no-repeat;
width: 100%;
height: 100px;
margin-bottom: 20px;
}
.icon-with-badge__badge {
background-color: $halloween-dark;
}
.detailed-status,
.detailed-status__action-bar {
background-color: #282828;
}
.focusable:focus,
.focusable:focus .detailed-status,
.focusable:focus .detailed-status__action-bar {
background-color: #333;
}
.timeline-queue-header,
.notification__filter-bar,
.account__section-headline,
.notification__filter-bar button,
.account__section-headline button {
background: transparent;
}
.dropdown-menu {
border-color: $halloween-orange;
}
.dropdown-menu__item a {
color: $halloween-orange;
}
.dropdown-menu__arrow.bottom {
border-bottom-color: $halloween-orange;
}
.dropdown-menu__arrow.top {
border-top-color: $halloween-orange;
}
.compose-modal {
background: $gab-background-container;
}
.boost-modal__action-bar,
.confirmation-modal__action-bar,
.mute-modal__action-bar {
background: $halloween-dark;
}
.boost-modal,
.confirmation-modal,
.report-modal,
.actions-modal,
.mute-modal {
border-color: $halloween-orange;
}
.admin-wrapper .sidebar ul .simple-navigation-active-leaf a {
color: #000;
}

@ -1,12 +0,0 @@
$halloween-orange: #dc6d00;
$halloween-dark: #904700;
$gab-brand-default: $halloween-orange;
$gab-text-highlight: lighten($halloween-orange, 20%);
$gab-secondary-text: #ccc;
$gab-placeholder-accent: #ccc;
$gab-background-base: darken($halloween-orange, 15%);
$action-button-color: #ccc;
$nav-ui-search-bg-color: lighten($halloween-orange, 20%);

@ -5,12 +5,12 @@
align-items: center !important;
@media screen and (max-width: 920px) {
background: darken($ui-base-color, 8%);
background: var(--background-color);
display: block !important;
}
&__pager {
background: darken($ui-base-color, 8%);
background: var(--background-color);
box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
overflow: hidden;
}
@ -92,13 +92,13 @@
font-size: 16px;
line-height: 24px;
font-weight: 400;
color: $darker-text-color;
color: var(--primary-text-color-faint);
code {
display: inline-block;
background: darken($ui-base-color, 8%);
background: var(--background-color);
font-size: 15px;
border: 1px solid lighten($ui-base-color, 8%);
border: 1px solid var(--brand-color-med);
border-radius: 2px;
padding: 1px 3px;
}
@ -126,18 +126,18 @@
width: 14px;
height: 14px;
border-radius: 14px;
border: 1px solid $ui-highlight-color;
border: 1px solid var(--brand-color);
background: transparent;
margin: 0 3px;
cursor: pointer;
&:hover {
background: lighten($ui-base-color, 8%);
background: var(--brand-color-med);
}
&.active {
cursor: default;
background: $ui-highlight-color;
background: var(--brand-color);
}
}

@ -1,16 +0,0 @@
@import 'soapbox-light/variables';
$gab-brand-default: #1ca82b;
$gab-background-base-light: #fafff9;
$gab-background: $gab-background-base-light;
$ui-base-color: #f5fff0;
$ui-highlight-color: $gab-brand-default;
$nav-ui-highlight-color: #69f31f;
$ui-base-lighter-color: darken(#69f31f, 35%);
@import 'application';
@import 'soapbox-light/diff';
.public-layout .footer ul li a {
color: lighten($gab-brand-default, 10%);
}

@ -0,0 +1,210 @@
.loading-indicator {
color: var(--primary-text-color-faint);
font-size: 12px;
font-weight: 400;
text-transform: uppercase;
overflow: visible;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
span {
display: block;
float: left;
margin-left: 50%;
transform: translateX(-50%);
margin: 82px 0 0 50%;
white-space: nowrap;
}
}
.loading-indicator__figure {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 42px;
height: 42px;
box-sizing: border-box;
background-color: transparent;
border: 0 solid rgba(var(--brand-color-rgb), 0.5);
border-width: 6px;
border-radius: 50%;
}
.no-reduce-motion .loading-indicator span {
animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);
}
.no-reduce-motion .loading-indicator__figure {
animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);
}
@keyframes loader-figure {
0% {
width: 0;
height: 0;
background-color: rgba(var(--brand-color-rgb), 0.5);
}
29% {
background-color: rgba(var(--brand-color-rgb), 0.5);
}
30% {
width: 42px;
height: 42px;
background-color: transparent;
border-width: 21px;
opacity: 1;
}
100% {
width: 42px;
height: 42px;
border-width: 0;
opacity: 0;
background-color: transparent;
}
}
@keyframes loader-label {
0% { opacity: 0.25; }
30% { opacity: 1; }
100% { opacity: 0.25; }
}
@keyframes heartbeat {
from {
transform: scale(1);
animation-timing-function: ease-out;
}
10% {
transform: scale(0.91);
animation-timing-function: ease-in;
}
17% {
transform: scale(0.98);
animation-timing-function: ease-out;
}
33% {
transform: scale(0.87);
animation-timing-function: ease-in;
}
45% {
transform: scale(1);
animation-timing-function: ease-out;
}
}
.no-reduce-motion .pulse-loading {
transform-origin: center center;
animation: heartbeat 1.5s ease-in-out infinite both;
}
@keyframes shake-bottom {
0%,
100% {
transform: rotate(0deg);
transform-origin: 50% 100%;
}
10% {
transform: rotate(2deg);
}
20%,
40%,
60% {
transform: rotate(-4deg);
}
30%,
50%,
70% {
transform: rotate(4deg);
}
80% {
transform: rotate(-2deg);
}
90% {
transform: rotate(2deg);
}
}
.no-reduce-motion .shake-bottom {
transform-origin: 50% 100%;
animation: shake-bottom 0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both;
}
.loading-bar {
background-color: var(--highlight-text-color);
height: 3px;
position: absolute;
top: 0;
left: 0;
}
.load-more {
display: block;
color: var(--primary-text-color);
background-color: transparent;
border: 0;
font-size: inherit;
text-align: center;
line-height: inherit;
margin: 0;
padding: 15px;
box-sizing: border-box;
width: 100%;
clear: both;
text-decoration: none;
&:hover {
background: var(--brand-color-faint);
}
}
.load-gap {
border-bottom: 1px solid var(--brand-color-med);
}
.regeneration-indicator {
text-align: center;
font-size: 16px;
font-weight: 500;
color: var(--primary-text-color);
background: var(--brand-color-med);
cursor: default;
display: flex;
flex: 1 1 auto;
align-items: center;
justify-content: center;
padding: 20px;
& > div {
width: 100%;
background: transparent;
padding-top: 0;
}
&__label {
strong {
display: block;
margin-bottom: 10px;
color: var(--primary-text-color);
}
span {
font-size: 15px;
font-weight: 400;
}
}
}

@ -1,34 +0,0 @@
@import 'soapbox-light/variables';
$gab-brand-default: #34565c;
$gab-background-base-light: #f6fbfb;
$gab-background: $gab-background-base-light;
$ui-base-color: #e9f6f5;
$ui-highlight-color: $gab-brand-default;
$nav-ui-highlight-color: #2da8be;
$ui-base-lighter-color: darken(#2da8be, 35%);
@import 'application';
@import 'soapbox-light/diff';
.public-layout {
background: $gab-brand-default url("../images/neenster/fish.gif");
.brand {
filter: brightness(0%) invert(100%);
}
.brand__tagline {
color: #fff;
}
.header .nav-link {
color: #fff;
&:hover,
&:focus,
&:active {
color: $gab-background-base-light;
}
}
}

@ -14,8 +14,8 @@
height: 100%;
display: inline-block;
border-radius: 4px;
background: rgba($gab-placeholder-accent, .3);
&.leading {background: rgba($gab-placeholder-accent, .6);}
background: rgba(var(--primary-text-color-rgb), .3);
&.leading {background: rgba(var(--primary-text-color-rgb), .6);}
}
&__text {
@ -27,7 +27,7 @@
overflow: hidden;
width: 100%;
text-overflow: ellipsis;
color: #fff;
color: var(--primary-text-color-faint);
input[type=radio],
input[type=checkbox] {
@ -47,17 +47,17 @@
box-sizing: border-box;
width: 100%;
font-size: 14px;
color: $inverted-text-color;
color: var(--primary-text-color);
display: block;
outline: 0;
font-family: inherit;
background: $simple-background-color;
border: 1px solid darken($simple-background-color, 14%);
background: var(--foreground-color);
border: 1px solid var(--foreground-color);
border-radius: 4px;
padding: 6px 10px;
&:focus {
border-color: $highlight-text-color;
border-color: var(--highlight-text-color);
}
}
@ -79,7 +79,7 @@
&__input {
display: inline-block;
position: relative;
border: 1px solid $ui-primary-color;
border: 1px solid var(--brand-color);
box-sizing: border-box;
width: 18px;
height: 18px;
@ -110,7 +110,7 @@
&__footer {
padding-top: 6px;
padding-bottom: 5px;
color: $dark-text-color;
color: var(--primary-text-color);
}
&__link {
@ -119,7 +119,7 @@
padding: 0;
margin: 0;
border: 0;
color: $dark-text-color;
color: var(--primary-text-color);
text-decoration: underline;
font-size: inherit;
@ -129,7 +129,7 @@
&:active,
&:focus {
background-color: rgba($dark-text-color, .1);
background-color: rgba(var(--primary-text-color-rgb), .1);
}
}
@ -142,14 +142,14 @@
}
.compose-form__poll-wrapper {
border-top: 1px solid darken($simple-background-color, 8%);
border-top: 1px solid var(--foreground-color);
ul {
padding: 10px;
}
.poll__footer {
border-top: 1px solid darken($simple-background-color, 8%);
border-top: 1px solid var(--foreground-color);
padding: 10px;
margin: -5px 0 0 -5px;
@ -166,8 +166,8 @@
padding: 6px 10px;
height: auto;
line-height: inherit;
color: $action-button-color;
border-color: $action-button-color;
color: var(--brand-color);
border-color: var(--brand-color);
}
li {
@ -182,38 +182,36 @@
}
select {
appearance: none;
box-sizing: border-box;
font-size: 14px;
color: $action-button-color;
color: var(--brand-color);
display: inline-block;
width: auto;
outline: 0;
font-family: inherit;
background-color: $simple-background-color;
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14.933 18.467' height='19.698' width='15.929'><path d='M3.467 14.967l-3.393-3.5H14.86l-3.392 3.5c-1.866 1.925-3.666 3.5-4 3.5-.335 0-2.135-1.575-4-3.5zm.266-11.234L7.467 0 11.2 3.733l3.733 3.734H0l3.733-3.734z' fill='#{rgba($action-button-color, 0.999)}'/></svg>");
background-color: var(--foreground-color);
background-repeat: no-repeat;
background-position: right 8px center;
background-size: auto 16px;
border: 1px solid $action-button-color;
border: 1px solid var(--brand-color);
border-radius: 4px;
padding: 6px 10px;
padding-right: 30px;
}
.icon-button.disabled {
color: darken($simple-background-color, 14%);
color: var(--foreground-color);
}
}
.muted .poll {
color: $dark-text-color;
color: var(--primary-text-color);
&__chart {
background: rgba(darken($ui-primary-color, 14%), 0.2);
background: rgba(var(--brand-color), 0.2);
&.leading {
background: rgba($ui-highlight-color, 0.2);
background: rgba(var(--brand-color), 0.2);
}
}
}

@ -0,0 +1,5 @@
.page--floral { background-image: url('../images/pro_bg/floral--light.svg'); }
body.theme-dark {
.page--floral { background-image: url('../images/pro_bg/floral--dark.svg'); }
}

@ -189,16 +189,6 @@ body.rtl {
right: -2.14285714em;
}
.admin-wrapper {
direction: rtl;
}
.admin-wrapper .sidebar ul a i.fa,
a.table-action-link i.fa {
margin-right: 0;
margin-left: 5px;
}
.simple_form .check_boxes .checkbox label {
padding-left: 0;
padding-right: 25px;
@ -248,12 +238,12 @@ body.rtl {
&::after {
right: auto;
left: 0;
background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));
background-image: linear-gradient(to left, rgba(var(--background-color-rgb), 0), var(--background-color));
}
}
.simple_form select {
background: darken($ui-base-color, 10%) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14.933 18.467' height='19.698' width='15.929'><path d='M3.467 14.967l-3.393-3.5H14.86l-3.392 3.5c-1.866 1.925-3.666 3.5-4 3.5-.335 0-2.135-1.575-4-3.5zm.266-11.234L7.467 0 11.2 3.733l3.733 3.734H0l3.733-3.734z' fill='#{hex-color(lighten($ui-base-color, 12%))}'/></svg>") no-repeat left 8px center / auto 16px;
background: var(--background-color) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14.933 18.467' height='19.698' width='15.929'><path d='M3.467 14.967l-3.393-3.5H14.86l-3.392 3.5c-1.866 1.925-3.666 3.5-4 3.5-.335 0-2.135-1.575-4-3.5zm.266-11.234L7.467 0 11.2 3.733l3.733 3.734H0l3.733-3.734z' fill='#{hex-color(var(--brand-color-med))}'/></svg>") no-repeat left 8px center / auto 16px;
}
.table th,

@ -1,3 +0,0 @@
@import 'soapbox-light/variables';
@import 'application';
@import 'soapbox-light/diff';

@ -1,473 +0,0 @@
// Notes!
// Sass color functions, "darken" and "lighten" are automatically replaced.
body {
color: $gab-default-text-light;
background-color: $gab-background;
}
// Change the colors of button texts
.button {
color: $white;
&.button-alternative-2 {
color: #000;
}
}
// Change default background colors of columns
.column {
article {
background: $white;
}
}
.drawer__inner {
background: $ui-base-color;
}
.drawer__inner__soapbox {
background: $ui-base-color url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 234.80078 31.757813" width="234.80078" height="31.757812"><path d="M19.599609 0c-1.05 0-2.10039.375-2.90039 1.125L0 16.925781v14.832031h234.80078V17.025391l-16.5-15.900391c-1.6-1.5-4.20078-1.5-5.80078 0l-13.80078 13.099609c-1.6 1.5-4.19883 1.5-5.79883 0L179.09961 1.125c-1.6-1.5-4.19883-1.5-5.79883 0L159.5 14.224609c-1.6 1.5-4.20078 1.5-5.80078 0L139.90039 1.125c-1.6-1.5-4.20078-1.5-5.80078 0l-13.79883 13.099609c-1.6 1.5-4.20078 1.5-5.80078 0L100.69922 1.125c-1.600001-1.5-4.198829-1.5-5.798829 0l-13.59961 13.099609c-1.6 1.5-4.200781 1.5-5.800781 0L61.699219 1.125c-1.6-1.5-4.198828-1.5-5.798828 0L42.099609 14.224609c-1.6 1.5-4.198828 1.5-5.798828 0L22.5 1.125C21.7.375 20.649609 0 19.599609 0z" fill="#{hex-color($white)}"/></svg>') no-repeat bottom / 100% auto;
}
// Change the colors used in compose-form
.compose-form {
.compose-form__modifiers {
.compose-form__upload-description input {
color: lighten($white, 7%);
&::placeholder {color: lighten($white, 7%);}
}
}
.compose-form__buttons-wrapper {
background: darken($ui-base-color, 6%);
}
.autosuggest-textarea__suggestions {
background: darken($ui-base-color, 6%);
}
.autosuggest-textarea__suggestions__item {
&:hover,
&:focus,
&:active,
&.selected {
background: lighten($ui-base-color, 4%);
}
}
}
.emoji-mart-bar {
border-color: lighten($ui-base-color, 4%);
&:first-child {
background: darken($ui-base-color, 6%);
}
}
.emoji-mart-search input {
background: rgba($ui-base-color, 0.3);
border-color: $ui-base-color;
}
// Change the background colors of statuses
.focusable:focus {
background: $ui-base-color;
}
.status.status-direct {
background: lighten($ui-base-color, 4%);
}
.focusable:focus .status.status-direct {
background: lighten($ui-base-color, 8%);
}
.detailed-status,
.detailed-status__action-bar {
background: darken($ui-base-color, 6%);
}
// Change the background colors of status__content__spoiler-link
.reply-indicator__content .status__content__spoiler-link,
.status__content .status__content__spoiler-link {
background: $ui-base-lighter-color;
&:hover {
background: lighten($ui-base-lighter-color, 6%);
}
}
// Change the background colors of media and video spoilers
.media-spoiler,
.video-player__spoiler {
background: $ui-base-color;
}
.account-gallery__item a {
background-color: $ui-base-color;
}
// Change the colors used in the dropdown menu
.dropdown-menu {
background: $ui-base-color;
&__arrow {
&.left {
border-left-color: $ui-base-color;
}
&.top {
border-top-color: $ui-base-color;
}
&.bottom {
border-bottom-color: $ui-base-color;
}
&.right {
border-right-color: $ui-base-color;
}
}
&__item {
a {
background: $ui-base-color;
color: $darker-text-color;
}
}
}
// Change the text colors on inverted background
.privacy-dropdown__option.active .privacy-dropdown__option__content,
.privacy-dropdown__option.active .privacy-dropdown__option__content strong,
.privacy-dropdown__option:hover .privacy-dropdown__option__content,
.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,
.actions-modal ul li:not(:empty) a.active,
.actions-modal ul li:not(:empty) a.active button,
.actions-modal ul li:not(:empty) a:active,
.actions-modal ul li:not(:empty) a:active button,
.actions-modal ul li:not(:empty) a:focus,
.actions-modal ul li:not(:empty) a:focus button,
.actions-modal ul li:not(:empty) a:hover,
.actions-modal ul li:not(:empty) a:hover button,
.admin-wrapper .sidebar ul li a.selected,
.simple_form .block-button,
.simple_form .button,
.simple_form button {
color: $white;
}
.dropdown-menu__separator {
border-bottom-color: lighten($ui-base-color, 12%);
}
// Change the background colors of modals
.actions-modal,
.boost-modal,
.confirmation-modal,
.mute-modal,
.report-modal,
.error-modal,
.onboarding-modal {
background: $ui-base-color;
}
.embed-modal {
background: #333;
color: #fff;
}
.boost-modal__action-bar,
.confirmation-modal__action-bar,
.mute-modal__action-bar,
.onboarding-modal__paginator,
.error-modal__footer {
background: darken($ui-base-color, 6%);
.onboarding-modal__nav,
.error-modal__nav {
&:hover,
&:focus,
&:active {
background-color: darken($ui-base-color, 12%);
}
}
}
.display-case__case {
background: $white;
}
.embed-modal .embed-modal__container .embed-modal__html {
background: $white;
&:focus {
background: darken($ui-base-color, 6%);
}
}
.react-toggle-track {
background: $ui-secondary-color;
}
.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {
background: darken($ui-secondary-color, 10%);
}
.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {
background: lighten($gab-brand-default, 10%);
}
// Change the default color used for the text in an empty column or on the error column
.empty-column-indicator,
.error-column {
color: $primary-text-color;
background: $white;
}
// Change the default colors used on some parts of the profile pages
.activity-stream-tabs {
background: $account-background-color;
border-bottom-color: lighten($ui-base-color, 8%);
}
.activity-stream {
.entry {
background: $account-background-color;
.detailed-status.light,
.more.light,
.status.light {
border-bottom-color: lighten($ui-base-color, 8%);
}
}
.status.light {
.status__content {
color: $primary-text-color;
}
.display-name {
strong {
color: $primary-text-color;
}
}
}
}
.accounts-grid {
.account-grid-card {
.name {
a {
color: $primary-text-color;
}
}
.username {
color: $darker-text-color;
}
.account__header__content {
color: $primary-text-color;
}
}
}
.simple_form,
.table-form {
.warning {
box-shadow: none;
background: rgba($error-red, 0.5);
text-shadow: none;
}
}
.simple_form input[type="text"],
.simple_form input[type="number"],
.simple_form input[type="email"],
.simple_form input[type="password"],
.simple_form textarea {
border-color: $gab-brand-default;
&:hover {
border-color: $gab-brand-default;
}
}
.simple_form select,
.admin select.dropdown {
border-color: $gab-secondary-text;
}
.button.logo-button {
color: $white;
svg {
fill: $white;
}
}
.public-layout {
.header,
.public-account-header,
.public-account-bio {
box-shadow: none;
}
.public-account-header {
&__image {
background: lighten($ui-base-color, 12%);
&::after {
box-shadow: none;
}
}
&__tabs {
&__name {
h1,
h1 small {
color: $white;
}
}
}
}
}
.account__section-headline a.active::after {
border-color: transparent transparent $white;
}
.hero-widget,
.box-widget,
.contact-widget,
.landing-page__information.contact-widget,
.moved-account-widget,
.memoriam-widget,
.activity-stream,
.nothing-here,
.directory__tag > a,
.directory__tag > div {
box-shadow: none;
}
.admin-wrapper .sidebar ul li a.selected {
color: $gab-background-container-light;
background-color: $gab-brand-default;
}
.admin-wrapper .sidebar ul li .simple-navigation-active-leaf a.selected {
color: #fff;
background-color: darken($gab-brand-default, 10%);
// Using Darken bc Lighten and Darken are reversed on light theme - actually lightens
}
.admin-wrapper .content > p {
color: #000;
}
.btngroup__btn--active {
color: #fff;
}
.timeline-compose-block .compose-form .compose-form__autosuggest-wrapper .autosuggest-textarea__textarea {
background: $gab-background-base-light;
}
.promo-panel-item {
@include light-theme-shadow;
background: $gab-background-container-light;
}
.column-header {
background: $gab-background-container-light;
color: $gab-default-text-light;
}
.column-header__button {
color: $gab-default-text-light;
background: $gab-background-container-light;
}
.column-header__collapsible-inner {
background: #e6e6e6;
}
.wtf-panel {
@include light-theme-shadow;
background: $gab-background-container-light;
}
.profile-info-panel .profile-info-panel-content span,
.profile-info-panel .profile-info-panel-content__name h1,
.profile-info-panel .profile-info-panel-content__name h1 span:first-of-type {
color: $gab-default-text-light;
}
.group-card .group-card__header img {
background: $gab-background-container-light;
}
.group .group__header {
background: $gab-background-container-light;
}
.group .group__panel .group__panel__label {
background: $gab-background-container-light;
}
.group .group__feed {
background: $gab-background-container-light;
}
input[type='text'],
textarea {
&.standard {
@include input-placeholder($gab-secondary-text);
color: $gab-placeholder-accent;
border-color: $gab-secondary-text;
background: $gab-background-base-light;
}
}
.boost-modal,
.confirmation-modal,
.report-modal,
.actions-modal,
.mute-modal {
color: $gab-default-text-light;
}
.report-modal__statuses {
.status__content,
.status__content p {
color: $gab-default-text-light;
}
}
.user-panel__header {
background: darken($gab-background-container-light, 4%);
}
.user-panel__profile .account__avatar {
border: 6px solid $gab-background-base-light;
}
.user-panel__account__name {
color: $gab-default-text-light;
}
.user-panel .user-panel-stats-item__value {
color: $gab-default-text-light;
}
.poll__text {
color: $gab-default-text-light;
}
.fa-site-icon::before {
filter: grayscale(100%) invert(0);
}

@ -1,44 +0,0 @@
$light-theme: true;
$gab-background: #f6f2f6;
// Dependent colors
$black: #000000;
$white: #ffffff;
$classic-base-color: #282c37;
$classic-primary-color: #9baec8;
$classic-secondary-color: lighten(#be9bc8, 30%);
$classic-highlight-color: #2b90d9;
// Differences
$success-green: #3c754d;
$base-overlay-background: $white !default;
$valid-value-color: $success-green !default;
$ui-base-color: $classic-secondary-color !default;
$ui-base-lighter-color: #f4c6f4;
$ui-primary-color: #9bcbed;
$ui-secondary-color: $classic-base-color !default;
$ui-highlight-color: #990099;
$primary-text-color: $black !default;
$darker-text-color: $classic-base-color !default;
$dark-text-color: #444b5d;
$action-button-color: #606984;
$inverted-text-color: $black !default;
$lighter-text-color: $classic-base-color !default;
$light-text-color: #444b5d;
//Newly added colors
$account-background-color: $white !default;
//Invert darkened and lightened colors
@function darken($color, $amount) {
@return hsl(hue($color), saturation($color), lightness($color) + $amount);
}
@function lighten($color, $amount) {
@return hsl(hue($color), saturation($color), lightness($color) - $amount);
}

File diff suppressed because it is too large Load Diff

@ -1,321 +0,0 @@
.card {
& > a {
display: block;
text-decoration: none;
color: inherit;
box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
@media screen and (max-width: $no-gap-breakpoint) {
box-shadow: none;
}
&:hover,
&:active,
&:focus {
.card__bar {
background: lighten($ui-base-color, 8%);
}
}
}
&__img {
height: 130px;
position: relative;
background: darken($ui-base-color, 12%);
border-radius: 4px 4px 0 0;
img {
display: block;
width: 100%;
height: 100%;
margin: 0;
object-fit: cover;
border-radius: 4px 4px 0 0;
}
@media screen and (max-width: 600px) {
height: 200px;
}
@media screen and (max-width: $no-gap-breakpoint) {
display: none;
}
}
&__bar {
position: relative;
padding: 15px;
display: flex;
justify-content: flex-start;
align-items: center;
background: lighten($ui-base-color, 4%);
border-radius: 0 0 4px 4px;
@media screen and (max-width: $no-gap-breakpoint) {
border-radius: 0;
}
.avatar {
flex: 0 0 auto;
width: 48px;
height: 48px;
padding-top: 2px;
img {
width: 100%;
height: 100%;
display: block;
margin: 0;
border-radius: 4px;
background: darken($ui-base-color, 8%);
object-fit: cover;
}
}
.display-name {
margin-left: 15px;
text-align: left;
strong {
font-size: 15px;
color: $primary-text-color;
font-weight: 500;
overflow: hidden;
text-overflow: ellipsis;
}
span {
display: block;
font-size: 14px;
color: $gab-secondary-text;
font-weight: 400;
overflow: hidden;
text-overflow: ellipsis;
}
}
}
}
.pagination {
padding: 30px 0;
text-align: center;
overflow: hidden;
a,
.current,
.newer,
.older,
.page,
.gap {
font-size: 14px;
color: $primary-text-color;
font-weight: 500;
display: inline-block;
padding: 6px 10px;
text-decoration: none;
}
.current {
background: $simple-background-color;
border-radius: 100px;
color: $inverted-text-color;
cursor: default;
margin: 0 10px;
}
.gap {
cursor: default;
}
.older,
.newer {
text-transform: uppercase;
color: $secondary-text-color;
}
.older {
float: left;
padding-left: 0;
.fa {
display: inline-block;
margin-right: 5px;
}
}
.newer {
float: right;
padding-right: 0;
.fa {
display: inline-block;
margin-left: 5px;
}
}
.disabled {
cursor: default;
color: lighten($inverted-text-color, 10%);
}
@media screen and (max-width: 700px) {
padding: 30px 20px;
.page {
display: none;
}
.newer,
.older {
display: inline-block;
}
}
}
.nothing-here {
background: $ui-base-color;
box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
color: $gab-secondary-text;
font-size: 14px;
font-weight: 500;
text-align: center;
display: flex;
justify-content: center;
align-items: center;
cursor: default;
border-radius: 4px;
padding: 20px;
min-height: 30vh;
&--under-tabs {
border-radius: 0 0 4px 4px;
}
&--flexible {
box-sizing: border-box;
min-height: 100%;
}
}
.account-role {
display: inline-block;
padding: 4px 6px;
cursor: default;
border-radius: 3px;
font-size: 12px;
line-height: 12px;
font-weight: 500;
color: $ui-secondary-color;
background-color: rgba($ui-secondary-color, 0.1);
border: 1px solid rgba($ui-secondary-color, 0.5);
&.moderator {
color: $success-green;
background-color: rgba($success-green, 0.1);
border-color: rgba($success-green, 0.5);
}
&.admin {
color: lighten($error-red, 12%);
background-color: rgba(lighten($error-red, 12%), 0.1);
border-color: rgba(lighten($error-red, 12%), 0.5);
}
}
.account__header__fields {
padding: 0;
margin: 15px -15px -15px;
border: 0 none;
border-top: 1px solid lighten($ui-base-color, 12%);
border-bottom: 1px solid lighten($ui-base-color, 12%);
font-size: 14px;
line-height: 20px;
dl {
display: flex;
border-bottom: 1px solid lighten($ui-base-color, 12%);
}
dt,
dd {
box-sizing: border-box;
padding: 14px;
text-align: center;
max-height: 48px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
dt {
font-weight: 500;
width: 120px;
flex: 0 0 auto;
color: $secondary-text-color;
background: rgba(darken($ui-base-color, 8%), 0.5);
}
dd {
flex: 1 1 auto;
color: $darker-text-color;
}
a {
color: $highlight-text-color;
text-decoration: none;
&:hover,
&:focus,
&:active {
text-decoration: underline;
}
}
.verified {
border: 1px solid rgba($valid-value-color, 0.5);
background: rgba($valid-value-color, 0.25);
a {
color: $valid-value-color;
font-weight: 500;
}
&__mark {
color: $valid-value-color;
}
}
dl:last-child {
border-bottom: 0;
}
}
.directory__tag .trends__item__current {
width: auto;
}
.pending-account {
&__header {
color: $darker-text-color;
a {
color: $ui-secondary-color;
text-decoration: none;
&:hover,
&:active,
&:focus {
text-decoration: underline;
}
}
strong {
color: $primary-text-color;
font-weight: 700;
}
}
&__body {
margin-top: 10px;
}
}

@ -1,733 +0,0 @@
$no-columns-breakpoint: 600px;
$sidebar-width: 240px;
$content-width: 840px;
.admin-wrapper {
display: flex;
justify-content: center;
height: 100%;
.sidebar-wrapper {
flex: 1 1 $sidebar-width;
height: 100%;
background: $ui-base-color;
display: flex;
justify-content: flex-end;
}
.sidebar {
width: $sidebar-width;
height: 100%;
padding: 0;
overflow-y: auto;
.logo {
display: block;
margin: 40px auto;
width: 100px;
}
@media screen and (max-width: $no-columns-breakpoint) {
& > a:first-child {
display: none;
}
}
ul {
list-style: none;
border-radius: 4px 0 0 4px;
overflow: hidden;
margin-bottom: 20px;
@media screen and (max-width: $no-columns-breakpoint) {
margin-bottom: 0;
}
a {
display: block;
padding: 15px;
color: $gab-secondary-text;
text-decoration: none;
transition: all 200ms linear;
transition-property: color, background-color;
border-radius: 4px 0 0 4px;
i.fa {
margin-right: 5px;
}
&:hover {
color: $gab-brand-default;
background-color: $gab-background;
transition: all 100ms linear;
transition-property: color, background-color;
}
&.selected {
background: darken($ui-base-color, 2%);
border-radius: 4px 0 0;
}
}
ul {
background: darken($ui-base-color, 4%);
border-radius: 0 0 0 4px;
margin: 0;
a {
border: 0;
padding: 15px 35px;
}
}
.simple-navigation-active-leaf a {
color: $primary-text-color;
background-color: $ui-highlight-color;
border-bottom: 0;
border-radius: 0;
&:hover {
background-color: lighten($ui-highlight-color, 5%);
}
}
}
& > ul > .simple-navigation-active-leaf a {
border-radius: 4px 0 0 4px;
}
}
.content-wrapper {
flex: 2 1 $content-width;
overflow: auto;
}
.content {
max-width: $content-width;
padding: 20px 15px;
padding-top: 60px;
padding-left: 25px;
@media screen and (max-width: $no-columns-breakpoint) {
max-width: none;
padding: 15px;
padding-top: 30px;
}
h2 {
color: $secondary-text-color;
font-size: 24px;
line-height: 28px;
font-weight: 400;
padding-bottom: 40px;
border-bottom: 1px solid lighten($ui-base-color, 8%);
margin-bottom: 40px;
}
h3 {
color: $secondary-text-color;
font-size: 20px;
line-height: 28px;
font-weight: 400;
margin-bottom: 30px;
}
h4 {
text-transform: uppercase;
font-size: 13px;
font-weight: 700;
color: $gab-secondary-text;
padding-bottom: 8px;
margin-bottom: 8px;
border-bottom: 1px solid lighten($ui-base-color, 8%);
}
h6 {
font-size: 16px;
color: $secondary-text-color;
line-height: 28px;
font-weight: 400;
}
.fields-group h6 {
color: $primary-text-color;
font-weight: 500;
}
.directory__tag > a,
.directory__tag > div {
box-shadow: none;
}
.directory__tag .table-action-link .fa {
color: inherit;
}
.directory__tag h4 {
font-size: 18px;
font-weight: 700;
color: $gab-secondary-text;
text-transform: none;
padding-bottom: 0;
margin-bottom: 0;
border-bottom: 0;
}
& > p {
font-size: 14px;
line-height: 18px;
color: $gab-secondary-text;
margin-bottom: 20px;
strong {
color: $gab-secondary-text;
font-weight: 500;
@each $lang in $cjk-langs {
&:lang(#{$lang}) {
font-weight: 700;
}
}
}
}
hr {
width: 100%;
height: 0;
border: 0;
border-bottom: 1px solid rgba($ui-base-lighter-color, .6);
margin: 20px 0;
&.spacer {
height: 1px;
border: 0;
}
}
.muted-hint {
color: $gab-secondary-text;
a {
color: $highlight-text-color;
}
}
.positive-hint {
color: $valid-value-color;
font-weight: 500;
}
.negative-hint {
color: $error-value-color;
font-weight: 500;
}
.neutral-hint {
color: $dark-text-color;
font-weight: 500;
}
}
@media screen and (max-width: $no-columns-breakpoint) {
display: block;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
.sidebar-wrapper,
.content-wrapper {
flex: 0 0 auto;
height: auto;
overflow: initial;
}
.sidebar {
width: 100%;
padding: 0;
height: auto;
}
}
}
.filters {
display: flex;
flex-wrap: wrap;
.filter-subset {
flex: 0 0 auto;
margin: 0 40px 10px 0;
&:last-child {
margin-bottom: 20px;
}
ul {
margin-top: 5px;
list-style: none;
li {
display: inline-block;
margin-right: 5px;
}
}
strong {
font-weight: 500;
text-transform: uppercase;
font-size: 12px;
@each $lang in $cjk-langs {
&:lang(#{$lang}) {
font-weight: 700;
}
}
}
a {
display: inline-block;
color: $gab-secondary-text;
text-decoration: none;
text-transform: uppercase;
font-size: 12px;
font-weight: 500;
border-bottom: 2px solid $gab-secondary-text;
&:hover {
color: $primary-text-color;
border-bottom: 2px solid lighten($gab-secondary-text, 5%);
}
&.selected {
color: $highlight-text-color;
border-bottom: 2px solid $ui-highlight-color;
}
}
}
}
.report-accounts {
display: flex;
flex-wrap: wrap;
margin-bottom: 20px;
}
.report-accounts__item {
display: flex;
flex: 250px;
flex-direction: column;
margin: 0 5px;
& > strong {
display: block;
margin: 0 0 10px -5px;
font-weight: 500;
font-size: 14px;
line-height: 18px;
color: $secondary-text-color;
@each $lang in $cjk-langs {
&:lang(#{$lang}) {
font-weight: 700;
}
}
}
.account-card {
flex: 1 1 auto;
}
}
.report-status,
.account-status {
display: flex;
margin-bottom: 10px;
.activity-stream {
flex: 2 0 0;
margin-right: 20px;
max-width: calc(100% - 60px);
.entry {
border-radius: 4px;
}
}
}
.report-status__actions,
.account-status__actions {
flex: 0 0 auto;
display: flex;
flex-direction: column;
.icon-button {
font-size: 24px;
width: 24px;
text-align: center;
margin-bottom: 10px;
}
}
.simple_form.new_report_note,
.simple_form.new_account_moderation_note {
max-width: 100%;
}
.batch-form-box {
display: flex;
flex-wrap: wrap;
margin-bottom: 5px;
#form_status_batch_action {
margin: 0 5px 5px 0;
font-size: 14px;
}
input.button {
margin: 0 5px 5px 0;
}
.media-spoiler-toggle-buttons {
margin-left: auto;
.button {
overflow: visible;
margin: 0 0 5px 5px;
float: right;
}
}
}
.back-link {
margin-bottom: 10px;
font-size: 14px;
a {
color: $highlight-text-color;
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
}
.spacer {
flex: 1 1 auto;
}
.log-entry {
margin-bottom: 20px;
line-height: 20px;
&__header {
display: flex;
justify-content: flex-start;
align-items: center;
padding: 10px;
background: $ui-base-color;
color: $darker-text-color;
border-radius: 4px 4px 0 0;
font-size: 14px;
position: relative;
}
&__avatar {
margin-right: 10px;
.avatar {
display: block;
margin: 0;
border-radius: 50%;
width: 40px;
height: 40px;
}
}
&__content {
max-width: calc(100% - 90px);
}
&__title {
word-wrap: break-word;
}
&__timestamp {
color: $dark-text-color;
}
&__extras {
background: lighten($ui-base-color, 6%);
border-radius: 0 0 4px 4px;
padding: 10px;
color: $darker-text-color;
font-family: $font-monospace, monospace;
font-size: 12px;
word-wrap: break-word;
min-height: 20px;
}
&__icon {
font-size: 28px;
margin-right: 10px;
color: $dark-text-color;
}
&__icon__overlay {
position: absolute;
top: 10px;
right: 10px;
width: 10px;
height: 10px;
border-radius: 50%;
&.positive {
background: $success-green;
}
&.negative {
background: lighten($error-red, 12%);
}
&.neutral {
background: $ui-highlight-color;
}
}
.username,
.target {
color: $secondary-text-color;
text-decoration: none;
font-weight: 500;
}
a {
color: $ui-highlight-color;
text-decoration: none;
font-weight: 500;
&:hover {
text-decoration: underline;
}
}
.diff-old {
color: lighten($error-red, 12%);
}
.diff-neutral {
color: $secondary-text-color;
}
.diff-new {
color: $success-green;
}
}
a.name-tag,
.name-tag,
a.inline-name-tag,
.inline-name-tag {
text-decoration: none;
color: $secondary-text-color;
.username {
font-weight: 500;
}
&.suspended {
.username {
text-decoration: line-through;
color: lighten($error-red, 12%);
}
.avatar {
filter: grayscale(100%);
opacity: 0.8;
}
}
}
a.name-tag,
.name-tag {
display: flex;
align-items: center;
.avatar {
display: block;
margin: 0;
margin-right: 5px;
border-radius: 50%;
}
&.suspended {
.avatar {
filter: grayscale(100%);
opacity: 0.8;
}
}
}
.speech-bubble {
margin-bottom: 20px;
border-left: 4px solid $ui-highlight-color;
&.positive {
border-left-color: $success-green;
}
&.negative {
border-left-color: lighten($error-red, 12%);
}
&.warning {
border-left-color: $gold-star;
}
&__bubble {
padding: 16px;
padding-left: 14px;
font-size: 15px;
line-height: 20px;
border-radius: 4px 4px 4px 0;
position: relative;
font-weight: 500;
a {
color: $darker-text-color;
}
}
&__owner {
padding: 8px;
padding-left: 12px;
}
time {
color: $dark-text-color;
}
}
.report-card {
background: $ui-base-color;
border-radius: 4px;
margin-bottom: 20px;
&__profile {
display: flex;
justify-content: space-between;
align-items: center;
padding: 15px;
.account {
padding: 0;
border: 0;
&__avatar-wrapper {
margin-left: 0;
}
}
&__stats {
flex: 0 0 auto;
font-weight: 500;
color: $darker-text-color;
text-transform: uppercase;
text-align: right;
a {
color: inherit;
text-decoration: none;
&:focus,
&:hover,
&:active {
color: lighten($darker-text-color, 8%);
}
}
.red {
color: $error-value-color;
}
}
}
&__summary {
&__item {
display: flex;
justify-content: flex-start;
border-top: 1px solid darken($ui-base-color, 4%);
&:hover {
background: lighten($ui-base-color, 2%);
}
&__reported-by,
&__assigned {
padding: 15px;
flex: 0 0 auto;
box-sizing: border-box;
width: 150px;
color: $darker-text-color;
&,
.username {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
&__content {
flex: 1 1 auto;
max-width: calc(100% - 300px);
&__icon {
color: $dark-text-color;
margin-right: 4px;
font-weight: 500;
}
}
&__content a {
display: block;
box-sizing: border-box;
width: 100%;
padding: 15px;
text-decoration: none;
color: $darker-text-color;
}
}
}
}
.one-line {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.ellipsized-ip {
display: inline-block;
max-width: 120px;
overflow: hidden;
text-overflow: ellipsis;
vertical-align: middle;
}
.admin select.dropdown {
appearance: none;
box-sizing: border-box;
font-size: 16px;
color: $primary-text-color;
display: block;
width: 100%;
outline: 0;
font-family: inherit;
resize: vertical;
background: darken($ui-base-color, 10%) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14.933 18.467' height='19.698' width='15.929'><path d='M3.467 14.967l-3.393-3.5H14.86l-3.392 3.5c-1.866 1.925-3.666 3.5-4 3.5-.335 0-2.135-1.575-4-3.5zm.266-11.234L7.467 0 11.2 3.733l3.733 3.734H0l3.733-3.734z' fill='#{hex-color(lighten($ui-base-color, 12%))}'/></svg>") no-repeat right 8px center / auto 16px;
border: 1px solid darken($ui-base-color, 14%);
border-radius: 4px;
padding-left: 10px;
padding-right: 30px;
height: 41px;
margin: 20px 0;
}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

@ -1,878 +0,0 @@
.container-alt {
width: 700px;
margin: 0 auto;
margin-top: 40px;
@media screen and (max-width: 740px) {
width: 100%;
margin: 0;
}
}
.logo-container {
margin: 100px auto 50px;
@media screen and (max-width: 500px) {
margin: 40px auto 0;
}
h1 {
display: flex;
justify-content: center;
align-items: center;
img {
height: 42px;
margin-right: 10px;
}
a {
display: flex;
justify-content: center;
align-items: center;
color: $primary-text-color;
text-decoration: none;
outline: 0;
padding: 12px 16px;
line-height: 32px;
font-family: $font-display, sans-serif;
font-weight: 500;
font-size: 14px;
}
}
}
.compose-standalone {
.compose-form {
width: 400px;
margin: 0 auto;
padding: 20px 0;
margin-top: 40px;
box-sizing: border-box;
@media screen and (max-width: 400px) {
width: 100%;
margin-top: 0;
padding: 20px;
}
}
}
.account-header {
width: 400px;
margin: 0 auto;
display: flex;
font-size: 13px;
line-height: 18px;
box-sizing: border-box;
padding: 20px 0;
padding-bottom: 0;
margin-bottom: -30px;
margin-top: 40px;
@media screen and (max-width: 440px) {
width: 100%;
margin: 0;
margin-bottom: 10px;
padding: 20px;
padding-bottom: 0;
}
.avatar {
width: 40px;
height: 40px;
margin-right: 8px;
img {
width: 100%;
height: 100%;
display: block;
margin: 0;
border-radius: 4px;
}
}
.name {
flex: 1 1 auto;
color: $secondary-text-color;
width: calc(100% - 88px);
.username {
display: block;
font-weight: 500;
text-overflow: ellipsis;
overflow: hidden;
}
}
.logout-link {
display: block;
font-size: 32px;
line-height: 40px;
margin-left: 8px;
}
}
.grid-3 {
display: grid;
grid-gap: 10px;
grid-template-columns: 3fr 1fr;
grid-auto-columns: 25%;
grid-auto-rows: max-content;
.column-0 {
grid-column: 1 / 3;
grid-row: 1;
}
.column-1 {
grid-column: 1;
grid-row: 2;
}
.column-2 {
grid-column: 2;
grid-row: 2;
}
.column-3 {
grid-column: 1 / 3;
grid-row: 3;
}
.landing-page__call-to-action {
min-height: 100%;
}
@media screen and (max-width: 738px) {
grid-template-columns: minmax(0, 50%) minmax(0, 50%);
.landing-page__call-to-action {
padding: 20px;
display: flex;
align-items: center;
justify-content: center;
}
.row__information-board {
width: 100%;
justify-content: center;
align-items: center;
}
.row__mascot {
display: none;
}
}
@media screen and (max-width: $no-gap-breakpoint) {
grid-gap: 0;
grid-template-columns: minmax(0, 100%);
.column-0 {
grid-column: 1;
}
.column-1 {
grid-column: 1;
grid-row: 3;
}
.column-2 {
grid-column: 1;
grid-row: 2;
}
.column-3 {
grid-column: 1;
grid-row: 4;
}
}
}
.public-layout {
.container {
width: 100%;
max-width: 960px;
@media screen and (max-width: $no-gap-breakpoint) {
padding: 0;
}
}
.content {
display: block;
margin: 40px 0;
@media screen and (max-width: 767px) {
margin-top: 0;
}
}
.header {
height: 80px;
display: flex;
align-items: stretch;
justify-content: center;
flex-wrap: nowrap;
padding: 14px 0;
box-sizing: border-box;
@media screen and (max-width: 1024px) {
padding: 14px 20px;
}
.header-container {
display: flex;
width: 960px;
align-items: stretch;
justify-content: center;
flex-wrap: nowrap;
& > div {
flex: 1 1 33.3%;
min-height: 1px;
}
}
.nav-left {
display: flex;
align-items: center;
justify-content: flex-start;
flex-wrap: nowrap;
}
.nav-center {
display: flex;
align-items: stretch;
justify-content: center;
flex-wrap: nowrap;
}
.nav-right {
display: flex;
align-items: center;
justify-content: flex-end;
flex-wrap: nowrap;
.simple_form.new_user {
display: flex;
flex-direction: row;
align-items: center;
.fields-group {
display: flex;
flex-direction: row;
margin-bottom: 0;
position: relative;
p.hint.subtle-hint {
position: absolute;
top: 30px;
left: 160px;
a {
padding: 4px;
border-radius: 4px;
background-color: $ui-base-color;
}
}
.input {
margin-bottom: 0;
margin-right: 10px;
input {
min-width: 150px;
font-size: 14px;
}
}
}
.actions {
display: flex;
margin-top: 0;
.button {
margin-bottom: 0 !important;
line-height: 38px !important;
border: 1px solid #333 !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 18px !important;
text-transform: none !important;
}
}
}
}
.brand {
display: block;
img {
display: block;
height: 30px;
width: auto;
position: relative;
bottom: -2px;
@media screen and (max-width: $no-gap-breakpoint) {
height: 20px;
}
}
}
.nav-link {
display: flex;
align-items: center;
padding: 12px 22px;
font-size: 14px;
font-weight: 600;
text-decoration: none;
color: $primary-text-color;
white-space: nowrap;
text-align: center;
&:hover,
&:focus,
&:active {
text-decoration: underline;
color: $primary-text-color;
}
&--hollow {
background-color: $ui-base-color;
&:hover,
&:focus,
&:active {
color: $gab-brand-default;
}
}
@media screen and (max-width: 550px) {
&.optional {
display: none;
}
}
}
.nav-button {
background: $gab-brand-default;
color: #fff;
margin: 8px;
margin-left: 0;
border-radius: 4px;
&:hover,
&:focus,
&:active {
text-decoration: none;
background: darken($gab-brand-default, 10%);
}
&--hollow {
background: transparent;
&:hover,
&:focus,
&:active {
background: rgba($gab-brand-default, 0.2);
}
}
}
}
$no-columns-breakpoint: 600px;
.grid {
display: grid;
grid-gap: 10px;
grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);
grid-auto-columns: 25%;
grid-auto-rows: max-content;
.column-0 {
grid-row: 1;
grid-column: 1;
}
.column-1 {
grid-row: 1;
grid-column: 2;
}
@media screen and (max-width: $no-columns-breakpoint) {
grid-template-columns: 100%;
grid-gap: 0;
.column-1 {
display: none;
}
}
}
.public-account-header {
overflow: hidden;
margin-bottom: 10px;
box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
&.inactive {
opacity: 0.5;
.public-account-header__image,
.avatar {
filter: grayscale(100%);
}
.logo-button {
background-color: $secondary-text-color;
}
}
&__image {
border-radius: 4px 4px 0 0;
overflow: hidden;
height: 300px;
position: relative;
background: darken($ui-base-color, 12%);
&::after {
content: "";
display: block;
position: absolute;
width: 100%;
height: 100%;
box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);
top: 0;
left: 0;
}
img {
object-fit: cover;
display: block;
width: 100%;
height: 100%;
margin: 0;
border-radius: 4px 4px 0 0;
}
@media screen and (max-width: 600px) {
height: 200px;
}
}
&--no-bar {
margin-bottom: 0;
.public-account-header__image,
.public-account-header__image img {
border-radius: 4px;
@media screen and (max-width: $no-gap-breakpoint) {
border-radius: 0;
}
}
}
@media screen and (max-width: $no-gap-breakpoint) {
margin-bottom: 0;
box-shadow: none;
&__image::after {
display: none;
}
&__image,
&__image img {
border-radius: 0;
}
}
&__bar {
position: relative;
margin-top: -80px;
display: flex;
justify-content: flex-start;
&::before {
content: "";
display: block;
background: lighten($ui-base-color, 4%);
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 60px;
border-radius: 0 0 4px 4px;
z-index: -1;
}
.avatar {
display: block;
width: 120px;
height: 120px;
padding-left: 20px - 4px;
flex: 0 0 auto;
img {
display: block;
width: 100%;
height: 100%;
margin: 0;
border-radius: 50%;
border: 4px solid lighten($ui-base-color, 4%);
background: darken($ui-base-color, 8%);
}
}
@media screen and (max-width: 600px) {
margin-top: 0;
background: lighten($ui-base-color, 4%);
border-radius: 0 0 4px 4px;
padding: 5px;
&::before {
display: none;
}
.avatar {
width: 48px;
height: 48px;
padding: 7px 0;
padding-left: 10px;
img {
border: 0;
border-radius: 4px;
}
@media screen and (max-width: 360px) {
display: none;
}
}
}
@media screen and (max-width: $no-gap-breakpoint) {
border-radius: 0;
}
@media screen and (max-width: $no-columns-breakpoint) {
flex-wrap: wrap;
}
}
&__tabs {
flex: 1 1 auto;
margin-left: 20px;
&__name {
padding-top: 20px;
padding-bottom: 8px;
h1 {
font-size: 20px;
line-height: 18px * 1.5;
color: $primary-text-color;
font-weight: 500;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
text-shadow: 1px 1px 1px $base-shadow-color;
small {
display: block;
font-size: 14px;
color: $primary-text-color;
font-weight: 400;
overflow: hidden;
text-overflow: ellipsis;
}
}
}
@media screen and (max-width: 600px) {
margin-left: 15px;
display: flex;
justify-content: space-between;
align-items: center;
&__name {
padding-top: 0;
padding-bottom: 0;
h1 {
font-size: 16px;
line-height: 24px;
text-shadow: none;
small {
color: $darker-text-color;
}
}
}
}
&__tabs {
display: flex;
justify-content: flex-start;
align-items: stretch;
height: 58px;
.details-counters {
display: flex;
flex-direction: row;
min-width: 300px;
}
@media screen and (max-width: $no-columns-breakpoint) {
.details-counters {
display: none;
}
}
.counter {
width: 33.3%;
box-sizing: border-box;
flex: 0 0 auto;
color: $darker-text-color;
padding: 10px;
border-right: 1px solid lighten($ui-base-color, 4%);
cursor: default;
text-align: center;
position: relative;
a {
display: block;
}
&:last-child {
border-right: 0;
}
&::after {
display: block;
content: "";
position: absolute;
bottom: 0;
left: 0;
width: 100%;
border-bottom: 4px solid $ui-primary-color;
opacity: 0.5;
transition: all 400ms ease;
}
&.active {
&::after {
border-bottom: 4px solid $highlight-text-color;
opacity: 1;
}
&.inactive::after {
border-bottom-color: $secondary-text-color;
}
}
&:hover {
&::after {
opacity: 1;
transition-duration: 100ms;
}
}
a {
text-decoration: none;
color: inherit;
}
.counter-label {
font-size: 12px;
display: block;
}
.counter-number {
font-weight: 500;
font-size: 18px;
margin-bottom: 5px;
color: $primary-text-color;
font-family: $font-display, sans-serif;
}
}
.spacer {
flex: 1 1 auto;
height: 1px;
}
&__buttons {
padding: 7px 8px;
}
}
}
&__extra {
display: none;
margin-top: 4px;
.public-account-bio {
border-radius: 0;
box-shadow: none;
background: transparent;
margin: 0 -5px;
.account__header__fields {
border-top: 1px solid lighten($ui-base-color, 12%);
}
.roles {
display: none;
}
}
&__links {
margin-top: -15px;
font-size: 14px;
color: $darker-text-color;
a {
display: inline-block;
color: $darker-text-color;
text-decoration: none;
padding: 15px;
font-weight: 500;
strong {
font-weight: 700;
color: $primary-text-color;
}
}
}
@media screen and (max-width: $no-columns-breakpoint) {
display: block;
flex: 100%;
}
}
}
.account__section-headline {
border-radius: 4px 4px 0 0;
@media screen and (max-width: $no-gap-breakpoint) {
border-radius: 0;
}
}
.detailed-status__meta {
margin-top: 25px;
}
.public-account-bio {
background: lighten($ui-base-color, 8%);
box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
border-radius: 4px;
overflow: hidden;
margin-bottom: 10px;
@media screen and (max-width: $no-gap-breakpoint) {
box-shadow: none;
margin-bottom: 0;
border-radius: 0;
}
.account__header__fields {
margin: 0;
border-top: 0;
a {
color: lighten($ui-highlight-color, 8%);
}
dl:first-child .verified {
border-radius: 0 4px 0 0;
}
.verified a {
color: $valid-value-color;
}
}
.account__header__content {
padding: 20px;
padding-bottom: 0;
color: $primary-text-color;
}
&__extra,
.roles {
padding: 20px;
font-size: 14px;
color: $darker-text-color;
}
.roles {
padding-bottom: 0;
}
}
.static-icon-button {
color: $action-button-color;
font-size: 18px;
& > span {
font-size: 14px;
font-weight: 500;
}
}
.card-grid {
display: flex;
flex-wrap: wrap;
min-width: 100%;
margin: 0 -5px;
& > div {
box-sizing: border-box;
flex: 1 0 auto;
width: 300px;
padding: 0 5px;
margin-bottom: 10px;
max-width: 33.333%;
@media screen and (max-width: 900px) {
max-width: 50%;
}
@media screen and (max-width: 600px) {
max-width: 100%;
}
}
@media screen and (max-width: $no-gap-breakpoint) {
margin: 0;
border-top: 1px solid lighten($ui-base-color, 8%);
& > div {
width: 100%;
padding: 0;
margin-bottom: 0;
border-bottom: 1px solid lighten($ui-base-color, 8%);
&:last-child {
border-bottom: 0;
}
.card__bar {
background: $ui-base-color;
&:hover,
&:active,
&:focus {
background: lighten($ui-base-color, 4%);
}
}
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save