| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304 | // Styles shared between snow and bubblecontrolHeight = 24pxinputPaddingWidth = 5pxinputPaddingHeight = 3pxcolorItemMargin = 2pxcolorItemSize = 16pxcolorItemsPerRow = 7.ql-{themeName}.ql-toolbar, .ql-{themeName} .ql-toolbar  &:after    clear: both    content: ''    display: table  button    background: none    border: none    cursor: pointer    display: inline-block    float: left    height: controlHeight    padding: inputPaddingHeight inputPaddingWidth    width: controlHeight + (inputPaddingWidth - inputPaddingHeight)*2    svg      float: left      height: 100%    &:active:hover      outline: none  input.ql-image[type=file]    display: none  button:hover, button:focus, button.ql-active,  .ql-picker-label:hover, .ql-picker-label.ql-active,  .ql-picker-item:hover, .ql-picker-item.ql-selected    color: activeColor    .ql-fill, .ql-stroke.ql-fill      fill: activeColor    .ql-stroke, .ql-stroke-miter      stroke: activeColor// Fix for iOS not losing hover on touch@media (pointer: coarse)  .ql-{themeName}.ql-toolbar, .ql-{themeName} .ql-toolbar    button:hover:not(.ql-active)      color: inactiveColor      .ql-fill, .ql-stroke.ql-fill        fill: inactiveColor      .ql-stroke, .ql-stroke-miter        stroke: inactiveColor.ql-{themeName}  box-sizing: border-box  *    box-sizing: border-box  .ql-hidden    display: none  .ql-out-bottom, .ql-out-top    visibility: hidden  .ql-tooltip    position: absolute    transform: translateY(10px)    a      cursor: pointer      text-decoration: none  .ql-tooltip.ql-flip    transform: translateY(-10px)  .ql-formats    &:after      clear: both      content: ''      display: table    display: inline-block    vertical-align: middle  .ql-stroke    fill: none    stroke: inactiveColor    stroke-linecap: round    stroke-linejoin: round    stroke-width: 2  .ql-stroke-miter    fill: none    stroke: inactiveColor    stroke-miterlimit: 10    stroke-width: 2  .ql-fill, .ql-stroke.ql-fill    fill: inactiveColor  .ql-empty    fill: none  .ql-even    fill-rule: evenodd  .ql-thin, .ql-stroke.ql-thin    stroke-width: 1  .ql-transparent    opacity: 0.4  .ql-direction    svg:last-child      display: none  .ql-direction.ql-active    svg:last-child      display: inline    svg:first-child      display: none  .ql-editor    h1      font-size: 2em    h2      font-size: 1.5em    h3      font-size: 1.17em    h4      font-size: 1em    h5      font-size: 0.83em    h6      font-size: 0.67em    a      text-decoration: underline    blockquote      border-left: 4px solid #ccc      margin-bottom: 5px      margin-top: 5px      padding-left: 16px    code, pre      background-color: #f0f0f0      border-radius: 3px    pre      white-space: pre-wrap      margin-bottom: 5px      margin-top: 5px      padding: 5px 10px    code      font-size: 85%      padding: 2px 4px    pre.ql-syntax      background-color: #23241f      color: #f8f8f2;      overflow: visible    img      max-width: 100%  .ql-picker    color: inactiveColor    display: inline-block    float: left    font-size: 14px    font-weight: 500    height: controlHeight    position: relative    vertical-align: middle  .ql-picker-label    cursor: pointer    display: inline-block    height: 100%    padding-left: 8px    padding-right: 2px    position: relative    width: 100%    &::before      display: inline-block      line-height: 22px  .ql-picker-options    background-color: backgroundColor    display: none    min-width: 100%    padding: 4px 8px    position: absolute    white-space: nowrap    .ql-picker-item      cursor: pointer      display: block      padding-bottom: 5px      padding-top: 5px  .ql-picker.ql-expanded    .ql-picker-label      color: borderColor      z-index: 2      .ql-fill        fill: borderColor      .ql-stroke        stroke: borderColor    .ql-picker-options      display: block      margin-top: -1px      top: 100%      z-index: 1  .ql-color-picker, .ql-icon-picker    width: controlHeight + 4    .ql-picker-label      padding: 2px 4px      svg        right: 4px  .ql-icon-picker    .ql-picker-options      padding: 4px 0px    .ql-picker-item      height: controlHeight      width: controlHeight      padding: 2px 4px  .ql-color-picker    .ql-picker-options      padding: inputPaddingHeight inputPaddingWidth      width: (colorItemSize + 2*colorItemMargin) * colorItemsPerRow + 2*inputPaddingWidth + 2  // +2 for the border    .ql-picker-item      border: 1px solid transparent      float: left      height: colorItemSize      margin: colorItemMargin      padding: 0px      width: colorItemSize  .ql-picker:not(.ql-color-picker):not(.ql-icon-picker)    svg      position: absolute      margin-top: -9px      right: 0      top: 50%      width: 18px  .ql-picker.ql-header, .ql-picker.ql-font, .ql-picker.ql-size    .ql-picker-label[data-label]:not([data-label='']),    .ql-picker-item[data-label]:not([data-label=''])      &::before        content: attr(data-label)  .ql-picker.ql-header    width: 98px    .ql-picker-label::before,    .ql-picker-item::before      content: 'Normal'    for num in (1..6)      .ql-picker-label[data-value=\"{num}\"]::before,      .ql-picker-item[data-value=\"{num}\"]::before        content: 'Heading ' + num    .ql-picker-item[data-value="1"]::before      font-size: 2em    .ql-picker-item[data-value="2"]::before      font-size: 1.5em    .ql-picker-item[data-value="3"]::before      font-size: 1.17em    .ql-picker-item[data-value="4"]::before      font-size: 1em    .ql-picker-item[data-value="5"]::before      font-size: 0.83em    .ql-picker-item[data-value="6"]::before      font-size: 0.67em  .ql-picker.ql-font    width: 108px    .ql-picker-label::before,    .ql-picker-item::before      content: 'Sans Serif'    .ql-picker-label[data-value=serif]::before,    .ql-picker-item[data-value=serif]::before      content: 'Serif'    .ql-picker-label[data-value=monospace]::before,    .ql-picker-item[data-value=monospace]::before      content: 'Monospace'    .ql-picker-item[data-value=serif]::before      font-family: Georgia, Times New Roman, serif;    .ql-picker-item[data-value=monospace]::before      font-family: Monaco, Courier New, monospace;  .ql-picker.ql-size    width: 98px    .ql-picker-label::before,    .ql-picker-item::before      content: 'Normal'    .ql-picker-label[data-value=small]::before,    .ql-picker-item[data-value=small]::before      content: 'Small'    .ql-picker-label[data-value=large]::before,    .ql-picker-item[data-value=large]::before      content: 'Large'    .ql-picker-label[data-value=huge]::before,    .ql-picker-item[data-value=huge]::before      content: 'Huge'    .ql-picker-item[data-value=small]::before      font-size: 10px    .ql-picker-item[data-value=large]::before      font-size: 18px    .ql-picker-item[data-value=huge]::before      font-size: 32px  .ql-color-picker.ql-background    .ql-picker-item      background-color: #fff;  .ql-color-picker.ql-color    .ql-picker-item      background-color: #000;
 |