@cmchu/web-fit
v0.0.1
Published
a tool for making your Web projects responsive to the screen
Downloads
1
Maintainers
Readme
web-fit
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.
Installation
you're using a module bundler like Webpack or Rollup:
import createdFit from '@cmchu/web-fit';
Usage
Basic Usage
Initialize FitLayout on the root element (default is the entire document):
const fitInstance = createdFit();
Customization
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']
});
API
createdFit(element:El = document.documentElement, options:Options={})
Parameters
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.
Returns
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.
getFitStyle(dw: number)
Generates the necessary class names and style content for the given design width.
Parameters
dw
(number): The design width.
Returns
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.
setElFitClassName(el: HTMLElement, name: string)
Adds a FitLayout class to an element.
Parameters
el
(HTMLElement): The element to modify.name
(string): The class name to add.
removeElFitClassName(el: HTMLElement, name?: string)
Removes a FitLayout class from an element.
Parameters
el
(HTMLElement): The element to modify.name
(string, optional): The class name to remove. If not provided, all FitLayout classes will be removed.
getElementByOptions(arg: El): HTMLElement[]
Retrieves elements by selector or direct reference.
Parameters
arg
(HTMLElement | string): An element or a selector string.
Returns
An array of HTMLElements matching the argument.
createFitStyle(name: string, styleContent: string)
Creates or updates a <style>
tag with the given style content.
Parameters
name
(string): The name attribute for the style tag.styleContent
(string): The CSS content to insert into the style tag.
Contributing
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.
License
This project is licensed under the MIT License - see the LICENSE file for details.