web-fit is a lightweight, responsive design utility designed to adjust elements proportionally to the viewport width, maintaining a consistent layout across different screen sizes. This utility automatically scales elements based on a specified design width while providing an option to exclude certain elements from scaling.
you're using a module bundler like Webpack or Rollup:
import createdFit from '@cmchu/web-fit';
Initialize FitLayout on the root element (default is the entire document):
const fitInstance = createdFit();
web-fit offers several customizable options:
-
dw
: The design width you've used in your layout (default is 1920). -
resize
: Whether to listen for resize events and reapply the layout (default is true). -
ignore
: An array of elements to be excluded from scaling.
const fitInstance = createdFit(document.querySelector('.my-root'), {
dw: 1600,
resize: true,
ignore: ['.header', '.footer']
});
-
element
(HTMLElement | string): The element to apply FitLayout to. Can be a DOM element or a CSS selector string. -
options
(object): Custom options for FitLayout.
An object containing methods and properties for managing the FitLayout instance:
-
init()
: Reinitialize FitLayout. -
restore()
: Restore original styles and remove FitLayout modifications. -
removeResize()
: Remove the resize event listener. -
target
(HTMLElement): The target element FitLayout was applied to. -
ignoreEls
(HTMLElement[]): List of elements excluded from scaling.
Generates the necessary class names and style content for the given design width.
-
dw
(number): The design width.
An object with the following properties:
-
className
(string): The class name for applying the scaled layout. -
igClassName
(string): The class name for ignoring the scaled layout. -
styleContent
(string): The style content for the generated CSS.
Adds a FitLayout class to an element.
-
el
(HTMLElement): The element to modify. -
name
(string): The class name to add.
Removes a FitLayout class from an element.
-
el
(HTMLElement): The element to modify. -
name
(string, optional): The class name to remove. If not provided, all FitLayout classes will be removed.
Retrieves elements by selector or direct reference.
-
arg
(HTMLElement | string): An element or a selector string.
An array of HTMLElements matching the argument.
Creates or updates a <style>
tag with the given style content.
-
name
(string): The name attribute for the style tag. -
styleContent
(string): The CSS content to insert into the style tag.
Contributions are welcome! Please follow these guidelines when contributing:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and ensure tests pass.
- Submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.