UNPKG

document-viewer-ts

Version:

PDF and MS Doc viewer written in TypeScript for React and vanilla JavaScript

254 lines (224 loc) 4.92 kB
div.document-viewer-ts.viewer-container { background: linear-gradient(#ffffff,#edebe9); border: 1px solid #e1e1e1; display: flex; height: 65vh; overflow: hidden; position: relative; width: 100%; } .document-viewer-ts div.wrapper { overflow: scroll; } .document-viewer-ts div.canvas-container { display: flex; flex-direction: column; justify-content: flex-start; width: 100%; } .document-viewer-ts div.page-container { filter: drop-shadow(0 0 3px #d2d5d8); position: relative; margin-bottom: 1rem; margin-top: 1rem; overflow: hidden; } .document-viewer-ts .text-layer { bottom: 0; color: transparent; left: 0; line-height: 1; opacity: 0.5; overflow: hidden; position: absolute; right: 0; text-align: initial; text-size-adjust: none; top: 0; width: 100%; height: 100%; } .document-viewer-ts .text-layer > span { color: transparent; cursor: text; position: absolute; transform-origin: 0% 0%; white-space: pre; } .document-viewer-ts .text-layer ::selection { background-color: Highlight; color: transparent; } .document-viewer-ts .viewer-controls { align-items: center; background-color: rgba(100, 100, 100, 0.75); border-radius: 0.5rem; bottom: 2rem; color: white; display: flex; flex-direction: row; justify-content: space-between; left: 50%; opacity: 1; padding: 1rem; position: absolute; transform: translateX(-50%); transition: opacity 300ms; width: 20rem; z-index: 999; } .page-label { display: none; @media (min-width: 36em) { display: flex; } } .document-viewer-ts .viewer-controls:hover { opacity: 1; } .document-viewer-ts .page-number { align-items: center; display: flex; flex-direction: row; font-family: sans-serif; font-size: 0.75rem; justify-content: space-between; width: 10rem; } .document-viewer-ts .page-number-input, .document-viewer-ts select { background-color: transparent; border: 1px solid rgba(255,255,255,0.5); color: white; font-size: 0.75rem; height: 1.5rem; justify-content: left; margin-left: 0.5rem; margin-right: 0.5rem; min-width: 2rem; text-align: left; width: 4rem; } .document-viewer-ts .viewer-controls button { align-items: center; background-color: transparent; border: none; color: white; display: flex; justify-content: center; } .document-viewer-ts embed.txt-embed { height: 65vh; width: 100%; } .document-viewer-ts .viewer-controls input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } /* Firefox */ .document-viewer-ts .viewer-controls input[type=number] { -moz-appearance: textfield; } /* loading indicator */ .document-viewer-ts .indicator-container { align-items: center; bottom: 0; display: flex; justify-content: center; left: 0; position: absolute; right: 0; top: 0; } .document-viewer-ts .lds-ring { display: inline-block; position: relative; width: 80px; height: 80px; } .document-viewer-ts .lds-ring div { box-sizing: border-box; display: block; position: absolute; width: 64px; height: 64px; margin: 8px; border: 8px solid #888; border-radius: 50%; animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite; border-color: #888 transparent transparent transparent; } .document-viewer-ts .lds-ring div:nth-child(1) { animation-delay: -0.45s; } .document-viewer-ts .lds-ring div:nth-child(2) { animation-delay: -0.3s; } .document-viewer-ts .lds-ring div:nth-child(3) { animation-delay: -0.15s; } @keyframes lds-ring { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .document-viewer-ts .error-message { color: #888; font-family: sans-serif; font-weight: 600; margin-left: auto; margin-right: auto; margin-top: 25vh; text-align: center; width: 80%; } .document-viewer-ts .textLayer { position: absolute; text-align: initial; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; line-height: 1; -webkit-text-size-adjust: none; -moz-text-size-adjust: none; text-size-adjust: none; forced-color-adjust: none; transform-origin: 0 0; z-index: 2; } .document-viewer-ts .textLayer span, .document-viewer-ts .textLayer br { color: transparent; position: absolute; white-space: pre; cursor: text; transform-origin: 0% 0%; } /* Only necessary in Google Chrome, see issue 14205, and most unfortunately * the problem doesn't show up in "text" reference tests. */ .document-viewer-ts .textLayer span.markedContent { top: 0; height: 0; } .document-viewer-ts .textLayer .endOfContent { display: block; position: absolute; left: 0; top: 100%; right: 0; bottom: 0; z-index: -1; cursor: default; -webkit-user-select: none; -moz-user-select: none; user-select: none; } .document-viewer-ts .textLayer .endOfContent.active { top: 0; }