222 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			SCSS
		
	
	
	
	
	
			
		
		
	
	
			222 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			SCSS
		
	
	
	
	
	
@use "../../styles/variables.scss" as *;
 | 
						|
 | 
						|
.search {
 | 
						|
  min-width: fit-content;
 | 
						|
  max-width: 14rem;
 | 
						|
  flex-grow: 0.3;
 | 
						|
 | 
						|
  & > #search-icon {
 | 
						|
    background-color: var(--lightgray);
 | 
						|
    border-radius: 4px;
 | 
						|
    height: 2rem;
 | 
						|
    display: flex;
 | 
						|
    align-items: center;
 | 
						|
    cursor: pointer;
 | 
						|
    white-space: nowrap;
 | 
						|
 | 
						|
    & > div {
 | 
						|
      flex-grow: 1;
 | 
						|
    }
 | 
						|
 | 
						|
    & > p {
 | 
						|
      display: inline;
 | 
						|
      padding: 0 1rem;
 | 
						|
    }
 | 
						|
 | 
						|
    & svg {
 | 
						|
      cursor: pointer;
 | 
						|
      width: 18px;
 | 
						|
      min-width: 18px;
 | 
						|
      margin: 0 0.5rem;
 | 
						|
 | 
						|
      .search-path {
 | 
						|
        stroke: var(--darkgray);
 | 
						|
        stroke-width: 2px;
 | 
						|
        transition: stroke 0.5s ease;
 | 
						|
      }
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  & > #search-container {
 | 
						|
    position: fixed;
 | 
						|
    contain: layout;
 | 
						|
    z-index: 999;
 | 
						|
    left: 0;
 | 
						|
    top: 0;
 | 
						|
    width: 100vw;
 | 
						|
    height: 100vh;
 | 
						|
    overflow-y: auto;
 | 
						|
    display: none;
 | 
						|
    backdrop-filter: blur(4px);
 | 
						|
 | 
						|
    &.active {
 | 
						|
      display: inline-block;
 | 
						|
    }
 | 
						|
 | 
						|
    & > #search-space {
 | 
						|
      width: 65%;
 | 
						|
      margin-top: 12vh;
 | 
						|
      margin-left: auto;
 | 
						|
      margin-right: auto;
 | 
						|
 | 
						|
      & > * {
 | 
						|
        width: 100%;
 | 
						|
        border-radius: 5px;
 | 
						|
        background: var(--light);
 | 
						|
        box-shadow:
 | 
						|
          0 14px 50px rgba(27, 33, 48, 0.12),
 | 
						|
          0 10px 30px rgba(27, 33, 48, 0.16);
 | 
						|
        margin-bottom: 2em;
 | 
						|
      }
 | 
						|
 | 
						|
      & > input {
 | 
						|
        box-sizing: border-box;
 | 
						|
        padding: 0.5em 1em;
 | 
						|
        font-family: var(--bodyFont);
 | 
						|
        color: var(--dark);
 | 
						|
        font-size: 1.1em;
 | 
						|
        border: 1px solid var(--lightgray);
 | 
						|
 | 
						|
        &:focus {
 | 
						|
          outline: none;
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      & > #search-layout {
 | 
						|
        display: flex;
 | 
						|
        flex-direction: row;
 | 
						|
        visibility: hidden;
 | 
						|
        border: 1px solid var(--lightgray);
 | 
						|
 | 
						|
        @media all and (min-width: $tabletBreakpoint) {
 | 
						|
          &[data-preview] {
 | 
						|
            & .result-card > p.preview {
 | 
						|
              display: none;
 | 
						|
            }
 | 
						|
          }
 | 
						|
        }
 | 
						|
 | 
						|
        & > div {
 | 
						|
          // vh - #search-space.margin-top
 | 
						|
          height: calc(75vh - 12vh);
 | 
						|
          background: none;
 | 
						|
 | 
						|
          &:first-child {
 | 
						|
            border-top-left-radius: 5px;
 | 
						|
            border-bottom-left-radius: 5px;
 | 
						|
            border-right: 1px solid var(--lightgray);
 | 
						|
          }
 | 
						|
 | 
						|
          &:last-child {
 | 
						|
            border-top-right-radius: 5px;
 | 
						|
            border-bottom-right-radius: 5px;
 | 
						|
          }
 | 
						|
        }
 | 
						|
 | 
						|
        @media all and (max-width: $tabletBreakpoint) {
 | 
						|
          display: block;
 | 
						|
          & > *:not(#results-container) {
 | 
						|
            display: none !important;
 | 
						|
          }
 | 
						|
 | 
						|
          & > #results-container {
 | 
						|
            width: 100%;
 | 
						|
            height: auto;
 | 
						|
          }
 | 
						|
        }
 | 
						|
 | 
						|
        & .highlight {
 | 
						|
          background: color-mix(in srgb, var(--tertiary) 60%, transparent);
 | 
						|
          border-radius: 5px;
 | 
						|
        }
 | 
						|
 | 
						|
        & > #preview-container {
 | 
						|
          display: block;
 | 
						|
          box-sizing: border-box;
 | 
						|
          overflow: hidden;
 | 
						|
 | 
						|
          & .preview-inner {
 | 
						|
            margin: 0 auto;
 | 
						|
            padding: 1em;
 | 
						|
            height: 100%;
 | 
						|
            width: 100%;
 | 
						|
            box-sizing: border-box;
 | 
						|
            overflow-y: auto;
 | 
						|
            font-family: inherit;
 | 
						|
            color: var(--dark);
 | 
						|
            line-height: 1.5em;
 | 
						|
            font-weight: 400;
 | 
						|
            background: var(--light);
 | 
						|
            border-top-right-radius: 5px;
 | 
						|
            border-bottom-right-radius: 5px;
 | 
						|
            box-shadow:
 | 
						|
              0 14px 50px rgba(27, 33, 48, 0.12),
 | 
						|
              0 10px 30px rgba(27, 33, 48, 0.16);
 | 
						|
          }
 | 
						|
 | 
						|
          a.internal {
 | 
						|
            background-color: none;
 | 
						|
          }
 | 
						|
        }
 | 
						|
 | 
						|
        & > #results-container {
 | 
						|
          overflow-y: auto;
 | 
						|
 | 
						|
          & .result-card {
 | 
						|
            padding: 1em;
 | 
						|
            cursor: pointer;
 | 
						|
            transition: background 0.2s ease;
 | 
						|
            border-bottom: 1px solid var(--lightgray);
 | 
						|
            width: 100%;
 | 
						|
            display: block;
 | 
						|
            box-sizing: border-box;
 | 
						|
 | 
						|
            // normalize card props
 | 
						|
            font-family: inherit;
 | 
						|
            font-size: 100%;
 | 
						|
            line-height: 1.15;
 | 
						|
            margin: 0;
 | 
						|
            text-transform: none;
 | 
						|
            text-align: left;
 | 
						|
            background: var(--light);
 | 
						|
            outline: none;
 | 
						|
            font-weight: inherit;
 | 
						|
 | 
						|
            &:focus,
 | 
						|
            &.focus {
 | 
						|
              background: var(--lightgray);
 | 
						|
            }
 | 
						|
 | 
						|
            & > h3 {
 | 
						|
              margin: 0;
 | 
						|
            }
 | 
						|
 | 
						|
            & > ul.tags {
 | 
						|
              margin-top: 0.45rem;
 | 
						|
              margin-bottom: 0;
 | 
						|
            }
 | 
						|
 | 
						|
            & > ul > li > p {
 | 
						|
              border-radius: 8px;
 | 
						|
              background-color: var(--highlight);
 | 
						|
              padding: 0.2rem 0.4rem;
 | 
						|
              margin: 0 0.1rem;
 | 
						|
              line-height: 1.4rem;
 | 
						|
              font-weight: bold;
 | 
						|
              color: var(--secondary);
 | 
						|
              
 | 
						|
              &.match-tag {
 | 
						|
                color: var(--tertiary);
 | 
						|
              }
 | 
						|
            }
 | 
						|
 | 
						|
            & > p {
 | 
						|
              margin-bottom: 0;
 | 
						|
            }
 | 
						|
          }
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 |