Mercurial
diff mrjunejune/test/snapshots/tools_file_converter_index.html.snapshot @ 256:30c2196d03d4
[site] Integrate Zenbu themes and components
Co-authored-by: Copilot <[email protected]>
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Tue, 04 Aug 2026 16:49:01 -0700 |
| parents | 8c74204fd362 |
| children |
line wrap: on
line diff
--- a/mrjunejune/test/snapshots/tools_file_converter_index.html.snapshot Tue Aug 04 15:12:18 2026 -0700 +++ b/mrjunejune/test/snapshots/tools_file_converter_index.html.snapshot Tue Aug 04 16:49:01 2026 -0700 @@ -1,332 +0,0 @@ - as="font" type="font/woff" crossorigin> --> -<!-- <link rel="preload" href="/public/fonts/atkinson-bold.woff" as="font" type="font/woff" crossorigin> --> - -<!-- <link rel="preload" href="/public/fonts/more-sugar.extras.otf" as="font" type="font/otf" crossorigin> --> -<link rel="preload" href="/public/fonts/more-sugar.regular.otf" as="font" type="font/otf" crossorigin> -<link rel="preload" href="/public/fonts/more-sugar.thin.otf" as="font" type="font/otf" crossorigin> -<link rel="preload" href="/public/epi_all_colors.svg" as="image"> - -<link rel="preload" href="/base.css" as="style" /> -<link rel="stylesheet" href="/base.css" /> - - - <style> - .container { - max-width: 800px; - margin: 2rem auto; - padding: 2rem; - } - - .converter-section { - border-radius: 8px; - border: 2px solid var(--lightgray); - padding: 2rem; - margin-bottom: 2rem; - } - - .converter-section h2 { - margin-top: 0; - color: var(--black); - } - - .file-input-wrapper { - margin: 1rem 0; - } - - .file-input-wrapper label { - display: block; - margin-bottom: 0.5rem; - font-weight: 600; - } - - input[type="file"] { - padding: 0.75rem; - border: 2px dashed #ccc; - border-radius: 4px; - background: white; - font-size: 16px; - } - - button { - background: var(--purple); - font-family: "More Thin", sans-serif; - color: var(--gray-gradient); - border: none; - padding: 0.75rem 1.5rem; - border-radius: 4px; - cursor: pointer; - font-size: 1rem; - margin-top: 1rem; - min-height: 44px; - } - - button:hover { - background: var(--orange); - } - - button:disabled { - background: var(--gray); - cursor: not-allowed; - } - - .result { - margin-top: 1rem; - padding: 1rem; - background: white; - border-radius: 4px; - display: none; - } - - .result.show { - display: block; - } - - .result.success { - border-left: 4px solid var(--blue); - } - - .result.error { - border-left: 4px solid var(--red); - } - - .download-link { - display: inline-block; - margin-top: 0.5rem; - color: var(--awesome); - text-decoration: none; - } - - .download-link:hover { - text-decoration: underline; - } - - .loading { - display: none; - margin-top: 1rem; - } - - .loading.show { - display: block; - } - - /* Mobile responsive */ - @media (max-width: 720px) { - .container { - padding: 1rem; - margin: 1rem auto; - } - - .converter-section { - padding: 1.5rem 1rem; - } - - .converter-section h2 { - font-size: 1.5rem; - } - - .file-input-wrapper label { - font-size: 1rem; - } - - button { - font-size: 1.1rem; - padding: 1rem 1.5rem; - } - - .result { - padding: 1rem; - font-size: 1rem; - } - } - </style> -</head> -<body> - <style> - :root { - --header-background: var(--white); - --header-color: rgb(var(--black)); - --link-hover-accent: var(--awesome); - } - - /* Fixed icon in top left corner */ - #themeToggle { - position: fixed; - top: 20px; - left: 20px; - background: var(--header-background); - display: flex; - align-items: center; - border-radius: 50%; - cursor: pointer; - z-index: 1000; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); - transition: transform 0.2s ease; - } - - #themeToggle:hover { - transform: scale(1.05); - } - - /* Professional header */ - header { - margin: auto; - padding: 1.5em 1em; - font-family: "More", sans-serif; - box-shadow: 0 2px 8px rgba(var(--black), 5%); - width: 720px; - max-width: calc(100% - 2em); - text-align: center; - } - - header h1 { - margin: 0; - font-size: 1.8em; - font-weight: 700; - letter-spacing: -0.5px; - } - - header h1 a { - text-decoration: none; - color: var(--header-color); - } - - header h1 a::before { - display: none; - } - - /* Mobile responsiveness */ - @media (max-width: 720px) { - #themeToggle { - top: 15px; - left: 15px; - } - - header { - padding: 1em; - } - - header h1 { - font-size: 1.5em; - } - } - - @media (max-width: 480px) { - #themeToggle { - top: 10px; - left: 10px; - } - - #themeToggle img { - height: 40px; - width: 40px; - } - - header h1 { - font-size: 1.3em; - } - } - - #logo { - width: 300px; - } - - /* 1. DEFINE THE DEFAULTS (Light Mode) */ - :root { - --logo-invert: invert(0); - --epi-grayscale: grayscale(0) brightness(1); - } - - /* 2. MANUAL DARK OVERRIDE */ - html.dark { - --logo-invert: invert(1); - --epi-grayscale: grayscale(1); - } - - /* 3. MANUAL LIGHT OVERRIDE */ - html.light-mode { - --logo-invert: invert(0); - --epi-grayscale: brightness(2.9) grayscale(1); - } - - /* 4. SYSTEM PREFERENCE */ - @media (prefers-color-scheme: dark) { - :root:not(.light-mode) { - --logo-invert: invert(1); - } - } - - /* 5. APPLY TO ELEMENTS */ - #logo { - -webkit-filter: var(--logo-invert); - filter: var(--logo-invert); - transition: filter 0.3s ease; - } - - .epi-logo { - -webkit-filter: var(--epi-grayscale); - filter: var(--epi-grayscale); - transition: filter 0.3s ease; - } -</style> - -<div id="themeToggle"> - <img id="epiChan" class="epi-logo" aria-label="Toggle dark mode" src="/public/epi_all_colors.svg" height="50" width="50"> -</div> - -<header> - <h1><a href="/">MrJuneJune</a></h1> -</header> -<script src="/index.js"></script> - - - - <div class="container"> - <h1>File Format Converter</h1> - <p>Convert your images and videos to different formats using FFmpeg</p> - - <div class="converter-section"> - <h2>Image to WebP Converter</h2> - <p>Upload an image file (PNG, JPG, GIF, etc.) to convert it to WebP format</p> - - <div class="file-input-wrapper"> - <label for="imageInput">Choose an image file:</label> - <input type="file" id="imageInput" accept="image/*"> - </div> - - <button id="convertImageBtn" onclick="convertImageToWebP()">Convert to WebP</button> - - <div class="loading" id="imageLoading">Converting... Please wait.</div> - - <div class="result" id="imageResult"> - <p id="imageMessage"></p> - <a id="imageDownload" class="download-link" style="display: none;">Download WebP Image</a> - </div> - </div> - - <div class="converter-section"> - <h2>Video to MP4 Converter</h2> - <p>Upload a video file (AVI, MOV, MKV, etc.) to convert it to MP4 format</p> - - <div class="file-input-wrapper"> - <label for="videoInput">Choose a video file:</label> - <input type="file" id="videoInput" accept="video/*"> - </div> - - <button id="convertVideoBtn" onclick="convertVideoToMP4()">Convert to MP4</button> - - <div class="loading" id="videoLoading">Converting... Please wait.</div> - - <div class="result" id="videoResult"> - <p id="videoMessage"></p> - <a id="videoDownload" class="download-link" style="display: none;">Download MP4 Video</a> - </div> - </div> - <div style="display: flex; align-items: center; justify-content: center; margin: 30px 0px;"> - <small>© 2026 June Park</small> -</div> - - </div> - <script src="/tools/file_converter/index.js"></script> -</body> -</htmlLocation: /tools/file_converter -