HomeWiki
HomeWiki
  1. Components
  • Back to home
  • 1. Themes
  • Layout
    • New Layout
    • Legacy Layout
  • Components
    • Announcement
    • Banner Carousel
    • Banner With Products Carousel
    • Blog Category List
    • Blog List
    • Brand List
    • Brands Carousel
    • Breadcrumb
    • Call To Action
    • Cart
    • Categories List
    • Change Password
    • Checkout
    • Cookie Manager
    • Filter list
    • Footer
    • Forgot Password
    • Form
    • Hero Carousel
    • Icon Block
    • Invitation
    • Last Visited Products
    • Layout
    • Login
    • Map
    • Nav Bar
    • Offer
    • Product Attachments
    • Product Attributes
    • Product Documentation
    • Product Expected
    • Product Modal
    • Products Block
    • Products Carousel
    • Product Single
    • Profile
    • Quote
    • Register
    • Related Products
    • Search
    • Stores
    • Subscribe Newsletter
    • Text with Image
    • Top Bar
    • Video
  • Reusables
    • Getting Started
  • Assets
    • Getting Started
  • SDK
    • Products
      • _findProductsByCategory
      • _findProductsByIds
      • _findProductsByTitle
      • _findProductsByFilter
      • _findProductsByCriteria
      • _findProductsAndCalculate
      • _findProductsThenCalculate
      • _getProductAttributeSet
      • _setLastVisited
    • Categories
      • _findCategoryTreeById
      • _findCategoriesByIds
      • _findCategoryByAlias
      • _findCategoryTreeByAlias
      • _getCategoryContent
    • Collections
      • _getCollectionContent
      • _findCollectionsByIds
      • _findCollectionsByIdsThenCalculate
    • Brands
      • _getBrandContent
      • _findBrandsByIds
    • Cart
      • _addToCartMulti
      • _addToCart
      • _setCart
      • _clearCart
      • _setCartListener
      • _removeFromCart
      • _calculateCart
    • Checkout
      • _startCheckout
      • _updateCheckout
      • _completeCheckout
    • Shopping Lists
      • _getShoppingLists
      • _updateShoppingList
      • _createShoppingList
      • _deleteShoppingList
      • _getShoppingListByAlias
    • Navigation
      • _getFooterMenu
      • _getHeaderMenu
    • Users
      • _getUserById
    • Utils
      • _calculateCurrency
      • _getCurrencySymbol
      • _getCulture
      • _subscribeToNewsletter
      • _findUnitsByIds
  • Vs Code
    • Getting Started
  1. Components

Icon Block

Documentation: Icon Block Component#

The Icon Block Component is a Vue.js component designed to display a grid of icons, each with optional headers and descriptions. This component is ideal for showcasing features, services, or key points in a structured and visually appealing layout.

Overview#

The Icon Block Component organizes a set of icons in a responsive grid layout. Each icon can have an associated header and description, and the component supports customizable styling and alignment. It is highly configurable through a model object, allowing for flexible integration into various parts of a web application.

Model Documentation#

The model object is used to configure the Icon Block Component. It defines the component's layout, content, and styling.
Model Structure#
id: String
A unique identifier for the section element, used to set the id attribute.
cssClass: String
Optional CSS class(es) for additional styling of the component.
header: String
Optional header text displayed at the top of the section.
alignment: Number
Controls the alignment of the header text (1 for left, 2 for center, 3 for right).
columns: Number
Specifies the number of columns in the grid (1 to 4).
backgroundColor: String
Background color for the section.
textColor: String
Color of the text within the section.
icons: Array
An array of icon objects, each with:
link: String
Optional URL for the icon image.
image: Object
Optional image object with a link property.
header: String
Optional header text for the icon.
text: String
Optional description text for the icon.
Example Model#
{
  "id": "icon-block",
  "cssClass": "icon-block",
  "header": "Our Key Features",
  "alignment": 2,
  "columns": 3,
  "backgroundColor": "#f8f9fa",
  "textColor": "#333",
  "icons": [
    {
      "link": "https://example.com/icon1.png",
      "header": "Feature One",
      "text": "Description of feature one."
    },
    {
      "link": "https://example.com/icon2.png",
      "header": "Feature Two",
      "text": "Description of feature two."
    },
    {
      "link": "https://example.com/icon3.png",
      "header": "Feature Three",
      "text": "Description of feature three."
    }
  ]
}

Component Structure#

The Icon Block Component includes:
1.
Header Section: Displays the optional header text, aligned according to the provided configuration.
2.
Icon Grid: A responsive grid of icons, each with an optional image, header, and description.
3.
Styling: The component supports custom background and text colors.

HTML Template#

The HTML template defines the structure and styling of the component:

JavaScript#

The JavaScript code handles data initialization, computed properties, and methods:

Explanation#

Data Handling: The component uses Vue.js data and props to manage configuration, styling, and layout.
Responsive Layout: Dynamically adjusts the grid layout based on the number of columns specified.
Styling: Inline styles are used for background color and text color, with defaults provided for missing icon images.
Alignment: Supports configurable header alignment using CSS classes.

Usage#

To integrate the Icon Block Component into a Vue.js application:
1.
Include the Component:
Register iconblockdefault in your Vue app.
2.
Provide the Model:
Pass a configuration object to the component to define the layout, icons, and styling.
3.
Initialize the Component:
The component handles the setup of layout and styles automatically based on the provided model.
4.
Customize as Needed:
Apply custom styles and adjust the configuration to fit your design needs.
Previous
Hero Carousel
Next
Invitation
Built with