### Local Development Setup Script for MkDocs Source: https://context7.com/cachemon/s3-fifo-website/llms.txt This bash script automates the setup for local development of the MkDocs documentation site. It creates and activates a Python virtual environment, installs the necessary MkDocs Material theme and minify plugin, and then starts the local development server. ```bash #!/bin/bash # build.sh - Local development setup # Create and activate virtual environment python3 -m venv .venv source .venv/bin/activate # Install dependencies pip3 install mkdocs-material=="9.2.0b0" pip3 install mkdocs-minify-plugin # Start local development server mkdocs serve # Access at http://127.0.0.1:8000 ``` -------------------------------- ### Setup Python Virtual Environment Source: https://github.com/cachemon/s3-fifo-website/blob/main/README.md Creates and activates a Python virtual environment for project dependencies. This isolates project packages and ensures a clean build environment. It relies on Python 3 being installed. ```bash python3 -m venv .venv source .venv/bin/activate ``` -------------------------------- ### Serve MkDocs Website Locally Source: https://github.com/cachemon/s3-fifo-website/blob/main/README.md Starts a local development server to preview the MkDocs website. This command allows developers to see changes in real-time before deploying. Requires MkDocs to be installed and configured. ```bash mkdocs serve ``` -------------------------------- ### Install MkDocs Minify Plugin Source: https://github.com/cachemon/s3-fifo-website/blob/main/README.md Installs the MkDocs minify plugin, used to optimize the website's assets for better performance. This plugin helps reduce file sizes of HTML, CSS, and JavaScript. Requires pip3 to be installed. ```bash pip3 install mkdocs-minify-plugin ``` -------------------------------- ### GitHub Actions Workflow for CI/CD Source: https://context7.com/cachemon/s3-fifo-website/llms.txt This GitHub Actions workflow automates the deployment of the MkDocs documentation site to GitHub Pages. It checks out the code, sets up Python, caches dependencies, installs MkDocs and its plugins, and then deploys the documentation using `mkdocs gh-deploy`. ```yaml # .github/workflows/ci.yml - Automated deployment name: ci on: push: branches: - main permissions: contents: write jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: 3.x - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV - uses: actions/cache@v3 with: key: mkdocs-material-${{ env.cache_id }} path: .cache restore-keys: | mkdocs-material- - run: pip install mkdocs-material=="9.2.0b0" mkdocs-minify-plugin - run: mkdocs gh-deploy --force ``` -------------------------------- ### Install MkDocs Material Theme Source: https://github.com/cachemon/s3-fifo-website/blob/main/README.md Installs the Material for MkDocs theme, which is required for the S3-FIFO website's frontend. This command specifies version 9.2.0b0, which supports blog features. Requires pip3 to be installed. ```bash pip3 install mkdocs-material=="9.2.0b0" ``` -------------------------------- ### Initialize and Use S3FIFO Cache in JavaScript Source: https://github.com/cachemon/s3-fifo-website/blob/main/material/home.html Provides an example of using the S3FIFO cache in JavaScript. It covers creating the cache, adding items with TTL, retrieving values, deleting items, and verifying object presence. ```javascript const { S3FIFO } = require('cachemonCache'); // Create a cache backed by DRAM const cache = new S3FIFO({ size: 10 }); // Add an object to the cache cache.put("key", "value", { ttl: 10 }); // Get an object from the cache const value = cache.get("key"); console.log(value); // Outputs: "value" // Remove an object from the cache cache.delete("key"); // Check if an object is in the cache const exists = cache.has("key"); console.log(exists); // Outputs: false ``` -------------------------------- ### MkDocs Configuration for S3-FIFO Website Source: https://context7.com/cachemon/s3-fifo-website/llms.txt This YAML configuration sets up the MkDocs Material theme, enabling features like search, code copying, blog support, and theme customization. It defines the site's structure, navigation, and integrates extensions for syntax highlighting and math rendering. ```yaml # mkdocs.yml site_name: "S3-FIFO: Simple, scalable and efficient caching" site_description: >- Simple, scalable and efficient caching with S3-FIFO watch: - material theme: name: material custom_dir: material features: - announce.dismiss - content.code.copy - navigation.footer - navigation.tabs - navigation.tabs.sticky - navigation.top - search.highlight - search.suggest palette: - scheme: default primary: custom accent: custom toggle: icon: material/brightness-7 name: Switch to dark mode - scheme: slate primary: custom accent: custom toggle: icon: material/brightness-4 name: Switch to light mode font: text: Roboto code: Roboto Mono favicon: assets/favicon.png logo: assets/images/logos/s3fifo-logo1.svg plugins: - search: separator: '[s-,:!=\[\]()"`\/]+|\.(?!\d)|&[lg]t;|(?![\b])(?=[A-Z][a-z])' - minify: minify_html: true - blog: extra: analytics: provider: google property: !ENV GOOGLE_ANALYTICS_KEY extra_css: - stylesheets/extra.css markdown_extensions: - abbr - admonition - attr_list - pymdownx.highlight: anchor_linenums: true line_spans: __span pygments_lang_class: true - pymdownx.superfences: custom_fences: - name: mermaid class: mermaid format: !!python/name:pymdownx.superfences.fence_code_format - pymdownx.arithmatex: generic: true nav: - Home: index.md - Blog: - blog/index.md - FIFO queues are all you need for cache eviction: blog/posts/S3-FIFO.md - the Power of Lazy Promotion and Quick Demotion: blog/posts/QDLP.md ``` -------------------------------- ### Initialize and Use S3FIFO Cache in Python Source: https://github.com/cachemon/s3-fifo-website/blob/main/material/home.html Demonstrates how to create, add, retrieve, delete, and check for the existence of objects in an S3FIFO cache using Python. This cache is backed by DRAM and supports Time-To-Live (TTL) for objects. ```python from cachemonCache import S3FIFO # Create a cache backed by DRAM cache = S3FIFO(size=10) # or cache=LRU(size=10) # Add an object to the cache cache.put("key", "value", ttl=10) # Get an object from the cache cache.get("key") print(value) # Outputs: "value" or None # Remove an object from the cache cache.delete("key") # Check if an object is in the cache cache.has("key") print(exists) # Outputs: False ``` -------------------------------- ### MkDocs Material Blog Post Structure with Markdown Extensions Source: https://context7.com/cachemon/s3-fifo-website/llms.txt Demonstrates the use of MkDocs Material's extended markdown features for technical blog posts. This includes frontmatter, inline HTML comments, and markdown formatting for content structure. No specific JavaScript or CSS dependencies are required beyond MkDocs Material. ```markdown --- date: 2023-08-01 authors: - jason categories: - Algorithm - Performance --- # FIFO queues are all you need for cache eviction **TL;DR** In this blog, I will describe a simple, scalable FIFO-based eviction algorithm with three static queues (S3-FIFO). Evaluated on 6594 cache traces from 14 datasets, we show that S3-FIFO has lower miss ratios than 12 state-of-the-art algorithms. Moreover, S3-FIFO's efficiency is robust — it has the lowest mean miss ratio on 10 of the 14 datasets. ## Background Software caches, such as Memcached, database buffer pool, and page cache, are widely deployed today to speed up data access. A cache should be: 1. *efficient / effective*: it should provide a low miss ratio 2. *performant*: serving data should perform minimal operations 3. *scalable*: throughput grows with CPU cores ### The importance of simplicity and scalability Modern CPUs have a large number of cores. For example, AMD EPYC 9654P has 192 cores/threads. A cache's scalability measures how its throughput increases with the number of CPU cores. ``` -------------------------------- ### Chart.js Bar and Line Charts for Performance Visualization Source: https://context7.com/cachemon/s3-fifo-website/llms.txt Implements interactive bar and line charts using Chart.js to visualize S3-FIFO performance metrics. This includes multi-dataset bar charts comparing cache algorithms and line charts for throughput scalability. Requires Chart.js library. ```javascript // material/mychart.js // Performance comparison bar chart const dataChartBarDoubleDatasetsExample = { labels: ['Meta', 'Twitter', 'Wikimedia', 'Tencent', 'CDN'], datasets: [ { label: 'FIFO', data: [0.0938, 0.0574, 0.1087, 0.0967, 0.0767], backgroundColor: '#889ABD', borderColor: '#889ABD', }, { label: 'LRU', data: [0.0812, 0.0488, 0.0803, 0.0659, 0.0688], backgroundColor: '#778fc7', borderColor: '#778fc7', }, { label: 'TinyLFU', data: [0.0853, 0.0445, 0.0605, 0.0715, 0.0656], backgroundColor: '#4F628E', borderColor: '#4F628E', }, { label: 'S3-FIFO', data: [0.0755, 0.0424, 0.0629, 0.0551, 0.0622], backgroundColor: '#FFA630', borderColor: '#FFA630', }, ] }; const optionsChartBarDoubleDatasetsExample = { scales: { y: { stacked: false, ticks: { beginAtZero: true, font: { size: 20 }, }, title: { display: true, text: 'Mean Miss Ratio', font: { size: 28 } }, }, x: { stacked: false, ticks: { font: { size: 24 }, } }, }, plugins: { legend: { align: 'end', labels: { font: { size: 20 }, }, }, }, }; var myChart = new Chart( document.getElementById('bar-chart'), { type: 'bar', data: dataChartBarDoubleDatasetsExample, options: optionsChartBarDoubleDatasetsExample }); // Throughput scalability line chart const dataLine = { labels: ['1', '2', '4', '8', '16'], datasets: [ { label: 'LRU', data: [2, 3, 4, 5, 6], borderColor: '#4F628E', backgroundColor: '#4F628E', }, { label: 'S3-FIFO', data: [2, 7, 12, 18, 28], borderColor: '#FFA630', backgroundColor: '#FFA630', }, ], }; const optionsThroughput = { scales: { x: { title: { display: true, text: 'Number of threads', font: { size: 20 }, }, }, y: { title: { display: true, text: 'Throughput (MOPS/s)', font: { size: 20 }, }, }, }, plugins: { legend: { labels: { font: { size: 20 }, }, }, }, }; const chart2 = new Chart( document.getElementById('throughput-chart'), { type: 'line', data: dataLine, options: optionsThroughput }); function scrollToLearnMoreSection() { const usageSection = document.getElementById('usage'); usageSection.scrollIntoView({ behavior: 'smooth' }); } ``` -------------------------------- ### Custom Tooltip Implementation CSS Source: https://github.com/cachemon/s3-fifo-website/blob/main/material/main-styles.html A comprehensive CSS implementation for a custom tooltip that appears on hover. It handles positioning, visibility transitions, arrow styling, and supports left and right orientations via data attributes. ```CSS /* You want a simple and fancy tooltip? Just copy all [data-tooltip] blocks: */ [data-tooltip] { position: relative; z-index: 10; } /* Positioning and visibility settings of the tooltip */ [data-tooltip]:before, [data-tooltip]:after { position: absolute; visibility: hidden; opacity: 0; left: 50%; bottom: calc(100% + 5px); /* 5px is the size of the arrow */ pointer-events: none; transition: 0.2s; will-change: transform; } /* The actual tooltip with a dynamic width */ [data-tooltip]:before { content: attr(data-tooltip); padding: 10px 18px; min-width: 50px; max-width: 300px; width: max-content; width: -moz-max-content; border-radius: 6px; font-size: 14px; background-color: rgba(59, 72, 80, 0.9); background-image: linear-gradient(30deg, rgba(59, 72, 80, 0.44), rgba(59, 68, 75, 0.44), rgba(60, 82, 88, 0.44)); box-shadow: 0px 0px 24px rgba(0, 0, 0, 0.2); color: #fff; text-align: center; white-space: pre-wrap; transform: translate(-50%, -5px) scale(0.5); } /* Tooltip arrow */ [data-tooltip]:after { content: ''; border-style: solid; border-width: 5px 5px 0px 5px; /* CSS triangle */ border-color: rgba(55, 64, 70, 0.9) transparent transparent transparent; transition-duration: 0s; /* If the mouse leaves the element, the transition effects for the tooltip arrow are "turned off" */ transform-origin: top; /* Orientation setting for the slide-down effect */ transform: translateX(-50%) scaleY(0); } /* Tooltip becomes visible at hover */ [data-tooltip]:hover:before, [data-tooltip]:hover:after { visibility: visible; opacity: 1; } /* Scales from 0.5 to 1 -> grow effect */ [data-tooltip]:hover:before { transition-delay: 0.3s; transform: translate(-50%, -5px) scale(1); } /* Arrow slide down effect only on mouseenter (NOT on mouseleave) */ [data-tooltip]:hover:after { transition-delay: 0.5s; /* Starting after the grow effect */ transition-duration: 0.2s; transform: translateX(-50%) scaleY(1); } /* That's it. */ /* If you want some adjustability here are some orientation settings you can use: */ /* LEFT */ /* Tooltip + arrow */ [data-tooltip-location="left"]:before, [data-tooltip-location="left"]:after { left: auto; right: calc(100% + 5px); bottom: 50%; } /* Tooltip */ [data-tooltip-location="left"]:before { transform: translate(-5px, 50%) scale(0.5); } [data-tooltip-location="left"]:hover:before { transform: translate(-5px, 50%) scale(1); } /* Arrow */ [data-tooltip-location="left"]:after { border-width: 5px 0px 5px 5px; border-color: transparent transparent transparent rgba(55, 64, 70, 0.9); transform-origin: left; transform: translateY(50%) scaleX(0); } [data-tooltip-location="left"]:hover:after { transform: translateY(50%) scaleX(1); } /* RIGHT */ [data-tooltip-location="right"]:before, [data-tooltip-location="right"]:after { left: calc(100% + 5px); bottom: 50%; } [data-tooltip-location="right"]:before { transform: translate(5px, 50%) scale(0.5); } [data-tooltip-location="right"]:hover:before { transform: translate(5px, 50%) scale(1); } [data-tooltip-location="right"]:after { border-width: 5px 5px 5px 0px; border-color: transparent rgba(55, 64, 70, 0.9) transparent transparent; transform-origin: right; transform: translateY(50%) scaleX(0); } [data-tooltip-location="right"]:hover:after { transform: translateY(50%) scaleX(1); } ``` -------------------------------- ### MkDocs Material Custom Homepage Template (HTML) Source: https://context7.com/cachemon/s3-fifo-website/llms.txt This HTML template extends the base MkDocs Material layout to create a custom homepage. It includes custom CSS for styling, a hero section with text and buttons, and a canvas element for embedding a Chart.js visualization. The template relies on external JavaScript files for chart rendering. ```html {% extends "main-styles.html" %} {% block tabs %} {{ super() }}

S3-FIFO

Scalable and Efficient Cache Eviction

Efficient : up to 72% lower miss ratio than LRU

{% endblock %} ``` -------------------------------- ### General Responsive Adjustments and Thumbnail Styling CSS Source: https://github.com/cachemon/s3-fifo-website/blob/main/material/main-styles.html Applies global adjustments for smaller screen heights and widths, including font size changes and specific styling for a thumbnail view. This section ensures content is readable and visually appealing on various devices. ```CSS @media (max-height: 450px) { main { margin: 2rem 0; } } @media (max-width: 800px) { html { font-size: 0.9em; } } /* Thumbnail settings */ @media (max-width: 750px) { html { animation-duration: 0.6s; font-size: 1em; } body { display: flex; background: none; height: 100%; margin: 0px; } main { font-size: 1.1em; padding: 6%; } .info-wrapper p:before, .info-wrapper p:after { display: none; } .example-elements { max-width: 150px; font-size: 22px; } .example-elements a, button { display: none; } .example-elements p:before, .example-elements p:after { visibility: visible; opacity: 1; } .example-elements p:before { content: "Tooltip"; font-size: 20px; transform: translate(-50%, -5px) scale(1); } .example-elements p:after { transform: translate(-50%, -1px) scaleY(1); } [data-tooltip]:after { bottom: calc(100% + 3px); } [data-tooltip]:after { border-width: 7px 7px 0px 7px; } } ``` -------------------------------- ### Responsive Design and Media Queries - CSS Source: https://github.com/cachemon/s3-fifo-website/blob/main/material/main-styles.html Applies responsive design principles using media queries to adjust layout and element properties for different screen sizes. Includes overrides for large screens and specific display properties. ```css @media (min-width: 1220px) { .conteiner-row-lg { display: flex; flex-flow: row; } .d-xl-none { display: none; } .pt-lg-5 { padding-top: 1rem; } .my-xl-5 { margin-top: 3rem; margin-bottom: 3rem; } .my-xl-4 { margin-top: 1.5rem; margin-bottom: 1.5rem; } .my-xl-0 { margin-left: 0rem; margin-right: 0rem; } .mx-xl-auto { margin-left: auto; margin-right: auto; } .mx-xl-0 { margin-left: 0rem; margin-right: 0rem; } .text-end-xl { text-align: end; } .text-start-xl { text-align: start; } .btn-xl-large:hover { font-size: 20px; padding: 10px 30px; } .btn-lg-large { font-size: 20px; padding: 10px 24px; } .btn-rainbow-custom { margin-top: 15rem; } .md-main { display: none; } .md-header__title .md-header__ellip ``` -------------------------------- ### Background and Layout Styles - CSS Source: https://github.com/cachemon/s3-fifo-website/blob/main/material/main-styles.html Defines various background styles using gradients and solid colors, as well as layout properties for elements. Includes classes for width control and specific element positioning. ```css .box-shadow { box-shadow: -5px 5px 10px 1px rgb(0 0 0 / 75%); } .first-gradiant-body { background: rgb(255, 255, 255); /* background: linear-gradient(0deg, rgb(150, 190, 243) 0%, rgb(180, 208, 246) 33%, rgb(253, 253, 252) 87%); */ } .second-gradiant-body { background: rgb(255, 255, 255); /* background: rgb(150, 190, 243); */ /* background: linear-gradient(180deg, rgb(150, 190, 243) 0%, rgb(84, 119, 247) 33%, rgb(61, 101, 244) 87%); */ } .section-white-body { background: rgb(255, 255, 255); } .section-dark-body { background: rgb(31, 31, 31); } .stack-tenology-gradient { background: hsla(316, 100%, 63%, 1); background: linear-gradient(90deg, hsla(316, 100%, 63%, 1) 0%, hsla(2, 62%, 69%, 1) 33%, hsla(68, 77%, 47%, 1) 87%); } .third-dark-body { background-color: #181917; } .four-gray-body { background-color: #D0D0D0; } .bg-dark { background-color: #181917; } .w-100 { width: 100%; } .w-70 { width: 70%; } .w-50 { width: 50%; } .w-25 { width: 25%; } .w-10 { width: 10%; } .ctx-header-text { flex: 80%; order: 0; display: flex; color: #000000; } .ctx-header-img { flex: 60%; order: 1; display: flex; flex-flow: column; } .ctx-card-white-1 { flex: 50%; order: 0; justify-content: center; } .ctx-what-is { order: 0; flex: 50%; width: 60%; } .laverage-header-img { width: 100%; margin-left: 2rem; margin-top: 3rem; } .laverage-mac-img { width: 40%; margin-left: auto; margin-right: 12rem; } .howdoeswork-img { width: 60%; } .why-laverage-img { width: 25%; left: 60%; position: relative; } .laverage-mac2-img { width: 60%; left: 10%; position: relative; } .card-white { width: 100%; background-color: white; border-radius: 60px 0px 60px 0px; } .card-rainbow { position: relative; bottom: -170px; border-radius: 15px; width: 80%; min-height: 600px; } .leverage-title-logo { margin-bottom: -10px; } .md-main { padding: 0px; } .md-footer { display: none; } .item-social-media:hover { background-color: #FFA630; border-radius: 10px; } .item-text-footer:hover { color: #c8ff00; } .custom-link { color: #ec712f; text-decoration: underline; } .custom-link-text { color: #ec712f; text-decoration: underline; } .custom-link + .custom-link { margin-left: 20px; /* adjust the space as needed */ } ``` -------------------------------- ### CSS Spacing Utilities Source: https://github.com/cachemon/s3-fifo-website/blob/main/material/main-styles.html A collection of CSS utility classes for managing margins and paddings. These classes allow for fine-grained control over element spacing, with predefined values for different axes (top, bottom, left, right, x, y) and increments (0-5, auto, large). ```css .spacing { margin-bottom: 0.5rem; } .ml-0 { margin-left: 0rem; } .ml-1 { margin-left: 0.25rem; } .ml-2 { margin-left: 0.5rem; } .ml-3 { margin-left: 1rem; } .ml-4 { margin-left: 1.5rem; } .ml-5 { margin-left: 3rem; } .mr-0 { margin-right: 0rem; } .mr-1 { margin-right: 0.25rem; } .mr-2 { margin-right: 0.5rem; } .mr-3 { margin-right: 1rem; } .mr-4 { margin-right: 1.5rem; } .mr-5 { margin-right: 3rem; } .pl-0 { padding-left: 0rem; } .pl-1 { padding-left: 0.25rem; } .pl-2 { padding-left: 0.5rem; } .pl-3 { padding-left: 1rem; } .pl-4 { padding-left: 1.5rem; } .pl-5 { padding-left: 3rem; } .pr-0 { padding-right: 0rem; } .pr-1 { padding-right: 0.25rem; } .pr-2 { padding-right: 0.5rem; } .pr-3 { padding-right: 1rem; } .pr-4 { padding-right: 1.5rem; } .pr-5 { padding-right: 3rem; } .mt-0 { margin-top: 0rem; } .mt-1 { margin-top: 0.25rem; } .mt-2 { margin-top: 0.5rem; } .mt-3 { margin-top: 1rem; } .mt-4 { margin-top: 1.5rem; } .mt-5 { margin-top: 3rem; } .mt-large { margin-top: 6rem; } .pt-0 { padding-top: 0rem; } .pt-1 { padding-top: 0.25rem; } .pt-2 { padding-top: 0.5rem; } .pt-3 { padding-top: 1rem; } .pt-4 { padding-top: 1.5rem; } .pt-5 { padding-top: 3rem; } .mb-0 { margin-bottom: 0rem; } .mb-1 { margin-bottom: 0.25rem; } .mb-2 { margin-bottom: 0.5rem; } .mb-3 { margin-bottom: 1rem; } .mb-4 { margin-bottom: 1.5rem; } .mb-5 { margin-bottom: 3rem; } .pb-0 { padding-bottom: 0rem; } .pb-1 { padding-bottom: 0.25rem; } .pb-2 { padding-bottom: 0.5rem; } .pb-3 { padding-bottom: 1rem; } .pb-4 { padding-bottom: 1.5rem; } .pb-5 { padding-bottom: 3rem; } .mx-0 { margin-left: 0rem; margin-right: 0rem; } .mx-1 { margin-left: 0.25rem; margin-right: 0.25rem; } .mx-2 { margin-left: 0.5rem; margin-right: 0.5rem; } .mx-3 { margin-left: 1rem; margin-right: 1rem; } .mx-4 { margin-left: 1.5rem; margin-right: 1.5rem; } .mx-5 { margin-left: 3rem; margin-right: 3rem; } .mx-6 { margin-left: auto; margin-right: 3rem; } .px-0 { padding-left: 0rem; padding-right: 0rem; } .px-1 { padding-left: 0.25rem; padding-right: 0.25rem; } .px-2 { padding-left: 0.5rem; padding-right: 0.5rem; } .px-3 { padding-left: 1rem; padding-right: 1rem; } .px-4 { padding-left: 1.5rem; padding-right: 1.5rem; } .px-5 { padding-left: 3rem; padding-right: 3rem; } .my-0 { margin-top: 0rem; margin-bottom: 0rem; } .my-1 { margin-top: 0.25rem; margin-bottom: 0.25rem; } .my-2 { margin-top: 0.5rem; margin-bottom: 0.5rem; } .my-3 { margin-top: 1rem; margin-bottom: 1rem; } .my-4 { margin-top: 2rem; margin-bottom: 2rem; } .my-5 { margin-top: 3rem; margin-bottom: 3rem; } .py-0 { padding-top: 0rem; padding-bottom: 0rem; } .py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; } .py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; } .py-3 { padding-top: 1rem; padding-bottom: 1rem; } .py-4 { padding-top: 1.5rem; padding-bottom: 1.5rem; } .py-5 { padding-top: 3rem; padding-bottom: 3rem; } .mx-auto { margin-left: auto; margin-right: auto; } .ml-auto { margin-left: auto; } .mr-auto { margin-right: auto; } ``` -------------------------------- ### CSS Text Color Utilities Source: https://github.com/cachemon/s3-fifo-website/blob/main/material/main-styles.html Utility classes for applying specific text colors. This includes predefined classes for pink, white, and dark text colors, allowing for easy theme customization. ```css .text-pink { color: #d328ae; } .text-white { color: #fff; } .text-dark { color: #000; } ``` -------------------------------- ### Responsive Pricing Table Layout CSS Source: https://github.com/cachemon/s3-fifo-website/blob/main/material/main-styles.html Styles to adjust the pricing table layout for various screen sizes, ensuring responsiveness from large desktops down to small mobile devices. It modifies widths and display properties. ```CSS @media only screen and (min-width: 768px) and (max-width: 959px) { .pricing-wrapper { width: 768px; } .pricing-table { width: 236px; } .table-list li { font-size: 1.3em; } } @media only screen and (max-width: 767px) { .pricing-wrapper { width: 420px; } .pricing-table { display: block; float: none; margin: 0 0 20px 0; width: 100%; } } @media only screen and (max-width: 479px) { .pricing-wrapper { width: 300px; } } ``` -------------------------------- ### CSS Flexbox Layout Utilities Source: https://github.com/cachemon/s3-fifo-website/blob/main/material/main-styles.html A set of CSS classes that leverage Flexbox to create various layout structures. This includes row and column direction, centering content, and defining column widths for responsive design. ```css .d-flex { display: flex; } .conteiner { display: flex; flex-flow: column; } .conteiner-row { display: flex; flex-flow: row; } .two-column-container { display: flex; justify-content: center; } .center-container { display: flex; justify-content: center; } .center-footer { flex: 40%; display: flex; justify-content: center; flex-flow: column; /* align-items: center; */ } .icon-container { display: flex; justify-content: center; } .figure { width: 40%; /* Adjust as needed */ } .figure2 { width: 30%; /* Adjust as needed */ right: 10%; } ``` -------------------------------- ### CSS Typography Utilities Source: https://github.com/cachemon/s3-fifo-website/blob/main/material/main-styles.html This snippet defines CSS classes for controlling typography, including font sizes, font weights, and text alignment. It supports various display sizes and standard heading levels, along with options for bold and semi-bold text. ```css .italic { font-style: italic; } .display-1 { font-size: 6rem; } .display-2 { font-size: 5rem; } .display-3 { font-size: 4rem; font-family: Roboto, sans-serif; } .display-4 { font-size: 3rem; } .h1 { font-size: 4rem; } .h1-2 { font-size: 3rem; } .h2 { font-size: 1.7rem; } .h2-2 { font-size: 1.35rem; /* font-family: Roboto, sans-serif; */ } .h3 { font-size: 1.2rem; } .h4 { font-size: 0.8rem; } .h5 { font-size: 0.25rem; } .t-b { font-weight: bold; } .t-600 { font-weight: 600; } .t-500 { font-weight: 500; } .text-align-center { text-align: center; } .text-start { text-align: start; } .text-end { text-align: end; } ```