stylus/edit/edit.css
narcolepticinsomniac eb0b9f58f5 Fix search highlight conflict (#587)
* Fix search highlight conflict 

Regular highlight styling and search highlight styling shouldn't both be applied at the same time. Search highlight styling should also be removed when search is closed. This PR resolves those conflicts.

* Remove unnecessary dummy animation

Not sure what the point of it ever was, but I'm pretty sure it should go.
2018-11-27 22:48:45 -06:00

992 lines
18 KiB
CSS

:root {
--header-narrow-min-height: 12em;
}
body {
margin: 0;
font: 12px arial,sans-serif;
}
#global-progress {
position: fixed;
height: 4px;
top: 0;
left: 0;
right: 0;
background-color: hsla(180, 66%, 36%, .25);
border-left: 0 solid darkcyan;
z-index: 2147483647;
opacity: 0;
transition: opacity 2s;
}
#global-progress[title] {
opacity: 1;
}
.hidden {
display: none !important;
}
/************ checkbox & select************/
.options-column > div[class="option"] {
margin-bottom: 4px;
}
.options-column > .usercss-only {
margin-bottom: .75rem;
}
label {
padding-left: 16px;
position: relative;
}
/************ header ************/
#header {
width: 280px;
height: 100vh;
overflow: auto;
position: fixed;
top: 0;
padding: 1rem;
border-right: 1px dashed #AAA;
-webkit-box-shadow: 0 0 3rem -1.2rem black;
box-shadow: 0 0 3rem -1.2rem black;
box-sizing: border-box;
z-index: 10;
display: flex;
flex-direction: column;
}
#header h1 {
margin-top: 0;
}
#sections {
padding-left: 280px;
}
#sections h2 {
margin-top: 1rem;
margin-left: 1.7rem;
}
.aligned {
display: table-row;
}
.aligned > *:not(.svg-inline-wrapper) {
display: table-cell;
margin-top: 0.1rem;
min-height: 1.4rem;
}
/* basic info */
#basic-info {
margin-bottom: 1rem;
}
#name {
width: 100%;
}
#basic-info-name {
display: flex;
align-items: center;
}
#url {
margin-left: 0.25rem;
}
#url:not([href^="http"]) {
display: none;
}
#basic-info-enabled {
margin-top: 2px;
display: flex;
align-items: center;
line-height: 16px;
}
#basic-info-enabled > * {
margin-right: 1em;
margin-left: 0;
}
#basic-info-enabled > :last-child {
margin-right: 0;
}
#basic-info-enabled input,
#basic-info-enabled svg {
margin: auto 0;
bottom: 0;
}
#basic-info-enabled svg {
left: 2px;
}
#preview-errors {
background-color: red;
color: white;
padding: 0 6px;
border-radius: 9px;
margin-left: -.5em;
font-weight: bold;
cursor: pointer;
}
.svg-icon {
cursor: pointer;
vertical-align: middle;
transition: fill .5s;
width: 16px;
height: 16px;
}
.svg-inline-wrapper {
margin-left: .2rem;
display: inline-block;
vertical-align: middle;
}
#mozilla-format-heading .svg-inline-wrapper {
margin-left: 0;
}
#colorpicker-settings.svg-inline-wrapper {
margin: -2px 0 0 .1rem;
}
.svg-inline-wrapper.applies-to-help {
margin: 0 0 0 .25rem;
}
.aligned .svg-inline-wrapper {
margin: -2px 0 0 .3rem;
}
#sections-help {
margin-left: -1px;
}
.svg-icon.info {
width: 14px;
height: 16px;
}
.svg-icon:hover,
.svg-icon.info,
.svg-icon.settings {
fill: #666;
}
.svg-icon,
.svg-icon.info:hover,
.svg-icon.settings:hover {
fill: #000;
}
#options span .svg-icon {
margin-top: -3px; /* inline info and config icons */
}
input:invalid {
background-color: rgba(255, 0, 0, 0.1);
color: darkred;
}
#enabled {
margin-left: 0;
}
/* collapsibles */
#header summary {
align-items: center;
margin-left: -13px;
cursor: pointer;
margin-top: .5rem;
margin-bottom: .5rem;
}
#header summary h2 {
display: inline-block;
border-bottom: 1px dotted transparent;
margin-top: .1em;
margin-bottom: .1em;
}
#header summary:hover h2 {
border-color: #bbb;
}
#header summary svg {
margin-top: -3px;
}
#actions > * {
display: inline-flex;
flex-wrap: wrap;
}
#mozilla-format-container {
flex-direction: column;
}
#mozilla-format-buttons {
display: flex;
flex-wrap: wrap;
}
#actions > div > a {
height: min-content;
}
#actions button,
#actions > div > a {
margin: 0 .2rem .5rem 0;
}
#actions #cancel-button {
margin: 0;
}
#options:not([open]) + #lint h2 {
margin-top: 0;
}
#lint:not([open]) h2 {
margin-bottom: 0;
}
/* options */
#options [type="number"] {
width: 3.5em;
text-align: left;
padding-left: .25em;
}
#options .option.aligned > label {
padding: .1rem .25rem 0 0;
vertical-align: middle;
}
.set-option-progress {
position: absolute;
background-color: currentColor;
content: "";
opacity: .15;
}
/* footer */
.usercss #footer {
display: block;
margin-top: 1em;
margin-bottom: .5em;
}
#lint:not([open]) + #footer {
margin-top: 4em;
}
/************ content ***********/
#sections > * {
margin: 0 0.7rem;
padding: 1rem;
}
#sections > :not(:first-child) {
border-top: 2px solid hsl(0, 0%, 80%);
}
.add-section:after {
content: attr(short-text);
}
#sections > div:only-of-type .add-section:after {
content: attr(long-text);
}
#sections > div:only-of-type .remove-section {
display: none;
}
.edit-actions {
display: flex;
flex-wrap: wrap;
}
.edit-actions button {
margin-right: .2rem;
}
.dirty > label::before {
content: "*";
font-weight: bold;
}
#sections {
counter-reset: codebox;
}
#sections > .section > label {
animation: 2s highlight;
animation-play-state: paused;
animation-direction: reverse;
animation-fill-mode: both;
}
#sections > .section > label::after {
counter-increment: codebox;
content: counter(codebox);
margin-left: 0.25rem;
}
.section:only-of-type .move-section-up,
.section:only-of-type .move-section-down {
display: none;
}
.section .CodeMirror {
margin-bottom: .875rem;
}
/* deleted section */
.deleted-section {
margin: 0;
}
.section .deleted-section {
display: none;
}
.section.removed .deleted-section {
display: block;
}
.section.removed .code-label,
.section.removed .applies-to,
.section.removed .edit-actions,
.section.removed .CodeMirror {
display: none;
}
.move-section-up:after {
content: "";
display: block;
border-style: solid;
border-width: 0 .3em .5em .3em;
border-color: transparent transparent currentColor transparent;
}
.move-section-down:after {
content: "";
display: block;
border-style: solid;
border-width: .5em .3em 0 .3em;
border-color: currentColor transparent transparent transparent;
}
/* code */
.code {
height: 10rem;
width: 40rem;
}
.resize-grip-enabled .CodeMirror-scroll {
height: auto !important;;
position: absolute !important;
top: 0;
left: 0;
right: 0;
bottom: 6px; /* resize-grip height */
}
.resize-grip-enabled .CodeMirror-vscrollbar {
margin-bottom: 7px; /* make space for resize-grip */
}
.resize-grip-enabled .CodeMirror-hscrollbar {
bottom: 7px; /* make space for resize-grip */
}
.resize-grip-enabled .CodeMirror-scrollbar-filler {
bottom: 7px; /* make space for resize-grip */
}
body:not(.find-open) .cm-matchhighlight,
body:not(.find-open) .CodeMirror-selection-highlight-scrollbar {
animation: fadein-match-highlighter 1s cubic-bezier(.97,.01,.42,.98);
animation-fill-mode: both;
}
body:not(.find-open) [data-match-highlight-count="1"] .cm-matchhighlight,
body:not(.find-open) [data-match-highlight-count="1"] .CodeMirror-selection-highlight-scrollbar {
animation: none;
}
@-webkit-keyframes highlight {
from {
background-color: #ff9;
}
to {
background-color: inherit;
}
}
@keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes fadein-match-highlighter {
from { background-color: transparent; }
to { background-color: rgba(1, 151, 193, 0.1); }
}
.resize-grip {
position: absolute;
display: block;
height: 6px;
content: "";
left: 0;
right: 0;
bottom: 0;
z-index: 9;
cursor: n-resize;
background-color: inherit;
border-top-width: 1px;
border-top-style: solid;
border-top-color: inherit;
}
.resize-grip:after {
content: "";
bottom: 2px;
left: 0;
right: 0;
margin: 0 8px;
display: block;
position: absolute;
border-top-width: 2px;
border-top-style: dotted;
border-top-color: inherit;
}
/* applies-to */
.applies-to {
display: flex;
align-items: flex-start;
min-height: 30px;
flex-wrap: wrap;
}
.applies-to label {
display: flex;
padding: 0;
height: 22px;
align-items: center;
margin: 0 .2em 0 0;
white-space: nowrap;
}
.applies-to ul {
flex: auto;
flex-grow: 1;
margin: 0;
padding: 0;
}
.applies-to li {
display: flex;
flex-wrap: wrap;
list-style-type: none;
align-items: center;
}
.applies-to li.applies-to-everything {
align-items: unset;
line-height: 22px;
}
.applies-to li > input {
min-height: 1.4rem;
}
.applies-to li:not(.applies-to-everything) > * {
margin: 0 .2rem .5rem 0;
}
.applies-to li .add-applies-to:first-child {
margin-left: 1rem;
}
.applies-to li .applies-value-wrapper {
flex-grow: 1;
display: flex;
}
.applies-to li .applies-value {
flex-grow: 1;
padding-left: 0.2rem;
}
.applies-to img {
vertical-align: bottom;
}
.add-applies-to,
.remove-applies-to {
font-size: 0;
height: 22px;
width: 22px;
display: inline-flex;
align-items: center;
justify-content: center;
cursor: pointer;
}
.add-applies-to .svg-icon,
.remove-applies-to .svg-icon {
pointer-events: none;
fill: hsl(0, 0%, 60%);
height: 12px;
width: 12px;
}
.add-applies-to:hover .svg-icon,
.remove-applies-to:hover .svg-icon {
pointer-events: none;
fill: hsl(0, 0%, 0%);
}
.test-regexp {
display: none;
}
.has-regexp .test-regexp {
display: inline-block;
}
.regexp-report summary {
cursor: pointer;
}
.regexp-report mark {
background-color: rgba(255, 255, 0, .5);
}
.regexp-report details {
margin-left: 1rem;
word-break: break-all;
}
.regexp-report details:not(:last-child) {
margin-bottom: 1rem;
}
.regexp-report summary {
font-weight: bold;
margin-left: -1rem;
margin-bottom: .5rem;
cursor: default;
overflow-wrap: break-word;
}
.regexp-report details[data-type="full"] {
color: darkgreen;
}
.regexp-report details[data-type="partial"] {
color: darkgray;
}
.regexp-report details[data-type="invalid"] {
color: maroon;
}
.regexp-report details details {
margin-left: 2rem;
margin-top: .5rem;
}
.regexp-report .svg-icon {
position: absolute;
margin-top: -1px;
}
.regexp-report details a {
color: inherit;
text-decoration: none;
display: block;
cursor: pointer;
}
.regexp-report details a:hover {
text-decoration: underline;
}
.regexp-report details a img {
width: 16px;
max-height: 16px;
position: absolute;
margin-left: -20px;
margin-top: -1px;
}
.regexp-report-note {
color: #999;
position: absolute;
margin: 0 0.5rem 0 0;
hyphens: auto;
}
/************ help popup ************/
#help-popup {
top: 3rem;
right: 3rem;
max-width: 50vw;
position: fixed;
display: none;
background-color: white;
box-shadow: 3px 3px 30px rgba(0, 0, 0, 0.5);
padding: 0.5rem;
z-index: 99;
}
#help-popup.big,
#help-popup.wide {
max-width: 100%;
}
#help-popup.big {
box-shadow: rgba(0, 0, 0, 0.45) 0px 0px 0px 100000px !important;
left: calc(280px - 3rem);
}
#help-popup.big .CodeMirror {
min-height: 2rem;
height: 70vh;
}
#help-popup .title {
font-weight: bold;
background-color: rgba(0,0,0,0.05);
margin: -0.5rem -0.5rem 0.5rem;
padding: .5rem 32px .5rem .5rem;
}
#help-popup .contents {
max-height: calc(100vh - 8rem);
overflow-y: auto;
}
#help-popup .settings {
min-width: 500px;
min-height: 200px;
max-width: 48vw;
}
#help-popup .dismiss {
position: absolute;
right: 4px;
top: .5em;
}
.keymap-list {
font-size: 12px;
border-spacing: 0;
word-break: break-all;
}
.keymap-list input {
width: 100%;
}
.keymap-list tr:nth-child(odd) {
background-color: rgba(0, 0, 0, 0.07);
}
.keymap-list td:first-child {
white-space: nowrap;
font-family: monospace;
padding-right: 0.5rem;
}
#help-popup .buttons {
text-align: center;
}
.non-windows #help-popup .buttons {
direction: rtl;
text-align: right;
}
#help-popup button[name^="import"] {
line-height: 1.5rem;
padding: 0 0.5rem;
margin: 0.5rem 0 0 0.5rem;
pointer-events: none;
opacity: 0.5;
}
#help-popup.ready button[name^="import"] {
pointer-events: all;
opacity: 1.0;
}
#help-popup .rules {
padding: 0 15px;
}
#help-popup button {
margin-right: 3px;
}
/************ lint ************/
#lint {
overflow-y: auto;
overflow-x: hidden;
}
#lint > summary {
/* workaround for overflow:auto to show the toggle triangle */
position: absolute;
}
#lint > div {
margin-top: 2.75rem;
}
#lint table {
font-size: 100%;
border-spacing: 0;
margin-bottom: 1rem;
line-height: 1.0;
}
#lint table:last-child {
margin-bottom: 0;
}
#lint table.empty {
display: none;
}
#lint caption {
text-align: left;
font-weight: bold;
}
#lint tbody {
font-size: 85%;
cursor: pointer;
}
#lint tr:hover {
background-color: rgba(0, 0, 0, 0.1);
}
#lint td[role="severity"] {
font-size: 0;
width: 16px;
}
#lint td[role="line"], #lint td[role="sep"] {
text-align: right;
padding-right: 0;
}
#lint td[role="col"] {
text-align: left;
padding-right: 0.25rem;
}
#lint td[role="message"] {
text-align: left;
white-space: nowrap;
}
#message-box.center.lint-config #message-box-contents {
text-align: left;
}
/************ CSS beautifier ************/
.beautify-options {
white-space: nowrap;
}
.beautify-options div {
float: left;
display: flex;
align-items: center;
}
.beautify-options div[newline="true"] + div {
clear: left;
}
.beautify-options div[newline="true"] + div span[indent] {
padding-left: 2rem;
}
.beautify-options > label {
top: 1em;
margin: 1ex 0;
}
.beautify-options:after {
clear: both;
display: block;
content: "";
height: 1rem;
}
.beautify-options span {
font-weight: bold;
font-family: monospace;
}
.beautify-options select {
border: none;
background: linear-gradient(90deg, rgba(0, 0, 0, .05) 18px, rgba(0, 0, 0, .02) 24px);
font-family: monospace;
font-weight: bold;
padding-left: 4px;
margin-left: 4px;
}
/************ single editor **************/
.usercss body {
display: flex;
height: 100vh;
flex-direction: column;
justify-items: normal;
}
html:not(.usercss) .usercss-only,
.usercss #mozilla-format-container,
.usercss #sections > h2 {
display: none !important; /* hide during page init */
}
#lint {
padding: 1rem 0 0;
box-sizing: border-box;
}
#options:not([open]) + #lint {
padding-top: 0;
}
#options-wrapper .options-column:nth-child(2) {
margin-top: .75rem;
}
.usercss #name {
background-color: #eee;
color: #888;
}
#sections .single-editor,
#sections > .single-editor:first-child {
margin: 0;
padding: 0;
display: flex;
box-sizing: border-box;
}
.single-editor .CodeMirror {
width: 100%;
height: auto;
border: none;
outline: none;
}
#footer a {
color: #333;
transition: color .5s;
}
#footer a:hover {
color: #666;
}
.usercss.firefox #sections,
.usercss.firefox .single-editor,
.usercss.firefox .CodeMirror {
height: 100%;
}
/************ line widget *************/
.CodeMirror-linewidget .applies-to {
margin: 1em 0;
padding: .75rem .75rem .25rem;
padding-right: calc(1em + 20px);
}
.CodeMirror-linewidget .applies-to li {
margin: 0;
}
.CodeMirror-linewidget .applies-to li + li {
margin-top: 0.35rem;
}
.CodeMirror-linewidget .applies-to li[data-type="regexp"] .test-regexp {
display: inline;
}
.CodeMirror-linewidget li.applies-to-everything {
margin-top: 0.2rem;
}
/************ reponsive layouts ************/
@media(max-width: 850px) {
body {
display: flex;
flex-direction: column;
}
#header {
flex: 0 1 auto;
height: unset;
width: unset;
position: inherit;
border-right: none;
border-bottom: 1px dashed #AAA;
padding: 0;
}
#actions {
display: flex;
flex-wrap: wrap;
white-space: nowrap;
padding: 0 1rem;
margin: 0;
box-sizing: border-box;
}
#header input[type="checkbox"] {
vertical-align: middle;
}
#heading,
h2 {
display: none;
}
#basic-info {
padding: .5rem 1rem;
margin: 0;
box-sizing: border-box;
display: flex;
flex-wrap: wrap;
}
#basic-info > *:first-child {
flex-grow: 1;
}
#basic-info > *:not(:last-child) {
margin-right: 0.8rem;
}
#basic-info #name {
flex-grow: 1;
}
#options-wrapper {
display: flex;
flex-wrap: wrap;
padding: 0 1rem .5rem;
box-sizing: border-box;
}
.options-column {
flex-grow: 1;
padding-right: .5rem;
box-sizing: border-box;
}
#options-wrapper .options-column:nth-child(2) {
margin-top: 0;
}
#options:not([open]),
#lint:not([open]) {
overflow: initial;
}
#options:not([open]) + #lint:not([open]) {
margin-top: 0;
}
#lint {
overflow: initial;
}
#lint summary {
position: static;
margin-bottom: 0;
}
#lint tbody {
display: flex;
flex-direction: column;
}
#options summary {
margin-left: 0;
padding-left: 4px;
}
#options h2 {
margin: 0 0 .5em;
}
.option label {
margin: 0;
}
#options [type="number"] {
text-align: left; /* workaround the column flow bug in webkit */
padding-left: 0.2rem;
}
#options #tabSize-label {
position: relative;
top: 0.2rem;
}
#lint > div {
margin-top: 0;
overflow: hidden;
}
#lint {
padding: 0 1rem .5rem;
}
#lint > summary {
margin-top: 0;
}
#lint caption {
text-indent: 4px;
}
#lint table {
width: 100%;
}
#lint td[role="message"] {
max-width: none;
}
#lint:not([open]) + #footer {
margin: .25em 0 -1em .25em;
}
#sections {
height: unset !important;
min-height: 0;
padding-left: 0;
display: flex;
flex-direction: column;
flex: 1;
}
#sections > * {
margin: 0 .5rem .5rem;
padding: .5rem 0 0;
}
#sections > *:first-child {
margin: .5rem;
padding: 0;
}
.usercss .CodeMirror-scroll {
max-height: calc(100vh - var(--header-narrow-min-height));
}
.usercss #options:not([open]) ~ #lint.hidden ~ #footer,
.usercss #lint:not([open]) + #footer {
margin-top: -.25em;
}
#help-popup.big[style="display: block;"],
#help-popup[style="display: block;"] {
width: max-content;
height: min-content;
max-width: 90%;
max-height: 90vh;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
}
#help-popup[style*="left:"] {
left: 1rem !important;
margin-top: -2.35rem;
}
#help-popup:not([style*="display: block;"]),
#help-popup .CodeMirror-lint-markers,
#help-popup .CodeMirror-guttermarker-subtle {
display: none !important;
}
#help-popup .CodeMirror-linenumber {
padding: 0;
}
}