Code Monkey home page Code Monkey logo

popover-css-inspector's Introduction

LICENSE GitHub Super-Linter code style: prettier npm Version npm Downloads

Popover CSS Inspector

Displays CSS attributes of elements in a Bootstrap popover. Ideal for design systems and style guides.

  • Easy to use - just add data-bs-custom-class="popover-css-inspector" to the element (requires Bootstrap 5 JavaScript)
  • Customizable with your own CSS and Bootstrap's Popover options
  • Popover remains static on the document and does not reposition on scroll
  • Supports Bootstrap 5 dark mode
  • Option to hide CSS elements - e.g. just add data-css-inspector-hide="font-size" to prevent font-size properties from displaying
  • Some CSS properties are hidden by default but can be enabled - e.g. just add data-css-inspector-show="border" to show border properties
  • Reloads CSS attributes if the theme is changed via the data-bs-theme attribute - perfect for checking color value changes between light and dark mode
  • Supports optional title with data-bs-title attribute.
  • Only 3 KB minified and gzipped!

Popover CSS Inspector

Quick start

Several quick start options are available:

  • Download the latest release
  • Clone the repo git clone https://github.com/coliff/popover-css-inspector.git
  • Install with npm npm install popover-css-inspector
  • Install with yarn yarn add popover-css-inspector

Usage

  1. Add the data-bs-custom-class="popover-css-inspector" to the element you'd like to show the popover on. For example, a button.
<button
  type="button"
  class="btn btn-primary"
  data-bs-toggle="popover"
  data-bs-custom-class="popover-css-inspector">
  Button
</button>
  1. Load the script (either async or defer is recommended):
<script src="/js/popover-css-inspector.min.js" defer></script>
  1. Some CSS properties are opt-in only. For example, to show border properties, add data-css-inspector-show="border" to the element.

  2. All CSS properties can be hidden. For example, to hide font-size properties, add data-css-inspector-hide="font-size" to the element.

  3. Optional. Consider adding the pe-none class to the element to prevent the popover from being triggered by the user.

How it works

The script will look for any element with the data-bs-custom-class="css-inspector" attribute and add a click event listener to it. When clicked, it will get the element's CSS attributes and display them in a Bootstrap popover.

Demo

Demo page

List of CSS properties

These CSS properties are displayed by default unless their value is null or empty. You can also opt out with a data-attribute if needed.

Property Opt-out attribute
animation-duration data-css-inspector-show="animation-duration"
animation-name data-css-inspector-show="animation-name"
background-color data-css-inspector-hide="bg-color"
border-radius data-css-inspector-hide="b-radius"
border-width data-css-inspector-hide="b-width"
color data-css-inspector-hide="color"
font-size data-css-inspector-hide="font-size"
font-style data-css-inspector-hide="font-style"
font-weight data-css-inspector-hide="font-weight"
height data-css-inspector-hide="height"
margin data-css-inspector-hide="margin"
max-height data-css-inspector-hide="max-height"
max-width data-css-inspector-hide="max-width"
opacity data-css-inspector-hide="opacity"
padding data-css-inspector-hide="padding"
text-align data-css-inspector-hide="text-align"
text-transform data-css-inspector-hide="text-transform"
width data-css-inspector-hide="width"

Note: Most attributes are hidden if the value is none or null.

List of opt-in CSS properties

Property Opt-in attribute
accent-color data-css-inspector-show="accent-color"
animation data-css-inspector-show="animation"
appearance data-css-inspector-show="appearance"
aspect-ratio data-css-inspector-show="aspect-ratio"
background-image data-css-inspector-show="bg-image"
background-position data-css-inspector-show="bg-position"
background-repeat data-css-inspector-show="bg-repeat"
background-size data-css-inspector-show="bg-size"
border data-css-inspector-show="border"
border-bottom-color data-css-inspector-show="b-bottom-color"
border-color data-css-inspector-show="b-color"
border-left-width data-css-inspector-show="b-left-width"
border-style data-css-inspector-show="b-style"
box-shadow data-css-inspector-show="box-shadow"
box-sizing data-css-inspector-show="box-sizing"
color-scheme data-css-inspector-show="color-scheme"
cursor data-css-inspector-show="cursor"
display data-css-inspector-show="display"
float data-css-inspector-show="float"
font-family data-css-inspector-show="font-family"
letter-spacing data-css-inspector-show="letter-spacing"
line-break data-css-inspector-show="line-break"
line-height data-css-inspector-show="line-height"
list-style data-css-inspector-show="list-style"
margin-bottom data-css-inspector-show="margin-bottom"
margin-left data-css-inspector-show="margin-left"
margin-right data-css-inspector-show="margin-right"
margin-top data-css-inspector-show="margin-top"
min-height data-css-inspector-show="min-height"
min-width data-css-inspector-show="min-width"
overflow data-css-inspector-show="overflow"
padding data-css-inspector-show="padding"
position data-css-inspector-show="position"
text-align data-css-inspector-show="text-align"
text-decoration data-css-inspector-show="text-decoration"
text-indent data-css-inspector-show="text-indent"
text-shadow data-css-inspector-show="text-shadow"
text-transform data-css-inspector-show="text-transform"
text-wrap data-css-inspector-show="text-wrap"
transform data-css-inspector-show="transform"
transition data-css-inspector-show="transition"
user-select data-css-inspector-show="user-select"
vertical-align data-css-inspector-show="vertical-align"
white-space data-css-inspector-show="white-space"
word-break data-css-inspector-show="word-break"
word-spacing data-css-inspector-show="word-spacing"
word-wrap data-css-inspector-show="word-wrap"
z-index data-css-inspector-show="z-index"

Browser support

Works well with all the browsers supported by Bootstrap.

Credits

Created by Christian Oliff with help from GitHub Copilot.

popover-css-inspector's People

Contributors

coliff avatar dependabot[bot] avatar

Stargazers

Sidharth R avatar Mahalakshmi Sankaran avatar  avatar Tenvi avatar Julien Déramond avatar

Watchers

 avatar  avatar

popover-css-inspector's Issues

Refresh Popovers on theme-color change

Popovers content do not change once theme-color is changed (e.g changing dark mode on or off) so it's possible the CSS values in popup could be wrong. It would be good to reload the popovers on theme-color change.

Reload or recalculate popover CSS attributes if the theme changes

If a user is viewing a page in light mode then the CSS attributes would show for light mode. However, if the user changes the theme color to dark mode then the CSS attributes do not update. It would be great to look for changes to data-bs-theme and reload/recalculate if there is a change.

Improve docs

  • There should be a table of CSS properties available to display and state if they are displayed by default, and if not what the code is to display them.
  • Add link to Bootstrap Popover docs
  • Make it clearer that Bootstrap 5 CSS and JS is required

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.