discourse/app/assets/stylesheets/admin/customize-install-theme.scss
Penar Musaraj 57730fa429
UX: Install theme modal tweaks (#39855)
Better layout on mobile and for the components on specific viewport sizes.
2026-05-08 12:47:41 -04:00

192 lines
3.1 KiB
SCSS
Vendored

@use "lib/viewport";
.d-modal.-large.admin-install-theme-modal {
@include viewport.from(sm) {
.d-modal__container {
max-width: min(1100px, 90vw);
}
}
}
.install-theme {
display: flex;
@include viewport.until(sm) {
.install-theme-items {
flex: 0 0 110px;
}
.install-theme-content {
flex: 1 1 100%;
}
.select-kit {
width: 100%;
}
}
}
.install-theme-items {
width: 240px;
}
.install-theme-item {
border: 1px solid var(--content-border-color);
border-bottom: none;
position: relative;
&:last-child {
border-bottom: 1px solid var(--content-border-color);
}
input,
.d-icon-angle-right {
display: none;
}
label {
display: block;
padding: 10px 30px 10px 10px;
margin-bottom: 0;
cursor: pointer;
}
input:checked + label {
color: var(--secondary);
background-color: var(--tertiary);
+ .d-icon {
display: block;
color: var(--secondary);
}
}
.d-icon-angle-right {
position: absolute;
right: 5px;
top: 50%;
margin-top: -7px;
}
}
.install-theme-content {
width: calc(100% - 20px);
input[type="file"] {
width: 100%;
overflow: hidden; // Chrome needs this
}
}
.install-theme-items + .install-theme-content {
padding: 0 0 10px 20px;
width: calc(100% - 200px);
}
.repo {
input[type="text"] {
width: 90%;
}
}
.popular-theme-items {
min-height: 60vh;
overflow: auto;
padding-right: 20px;
display: grid;
grid-template-columns: repeat(2, minmax(0, 2fr));
gap: 1em;
@include viewport.until(sm) {
display: block;
}
}
.popular-theme-item {
display: flex;
flex-direction: column;
align-items: center;
max-height: 22rem;
border: 1px solid var(--content-border-color);
border-radius: 4px;
padding: 0.75em;
overflow: hidden;
@include viewport.until(sm) {
margin-bottom: 0.75em;
}
.popular-theme-name {
flex: 1;
width: 100%;
margin: 0.75em 0;
min-height: 0;
overflow: auto;
.popular-theme-type {
font-weight: normal;
font-size: var(--font-down-2);
color: var(--primary-medium);
}
a {
color: var(--primary-very-high);
font-weight: bold;
&:hover,
&:visited,
&:active {
color: var(--primary-high);
}
}
.popular-theme-description {
font-size: var(--font-down-1);
margin-top: 0.35em;
}
}
.popular-theme-buttons {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.75em;
width: 100%;
@include viewport.until(sm) {
margin-top: 0.25em;
}
> span {
font-style: italic;
font-size: var(--font-down-1);
color: var(--primary-medium);
margin-right: 8px;
}
> a {
font-size: var(--font-down-2);
text-align: center;
}
}
}
.popular-theme-screenshot {
width: 100%;
aspect-ratio: 16 / 9;
overflow: hidden;
border: 1px solid var(--primary-low);
border-radius: 3px;
background: var(--primary-very-low);
img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
}
.install-theme-warning {
margin-bottom: 10px;
}