CSTiles

maintainabilitycoverageissuesdonate

The JavaScript tiles component.

Build

The repository contains pre-compiled files, but if you want to add your files and compile, then run the following commands in the repository folder.

  • npm install
  • npm run production

or

  • npm run development

The build required NodeJs version 6 or higher.

Usage

//If you use TypeScript in your project.
import CSTiles from CSTiles.ts

//If you use JavaScript in your project.
let window = global;
request("CSTiles.js");
let CSTiles = window["CSTiles"];

//If you just want to use JavaScript as usual.
<script src="js/CSTiles.js"></script>

//Then call just CSTiles class with parameters.
new CSTiles(<domParentNode>,<objGridParams>,<arrTiles>);

Parameters

- domParentNode
    The parent dom element in which the tiles will be inserted.

- objGridParams
    The parameters are describing the grid.

    - gridSize <number>
        The size of the grid in the baseline condition.

    - tileMargin <number>
        The distance between tiles in pixels.

    - tilePadding <number>
        The distance from the edge of the tile to the content in pixels.

    - tileContent <Object>
        The object describing the parameters of the default tile.

            type: 'image',
            src: './images/1.jpg'

            type: 'iframe',
            src: 'https://www.youtube.com/embed/w1I-HWAP6N8?controls=0&showinfo=0'

            type: 'video',
            src: [
                './videos/index.mp4'
            ],
            poster: './images/3.jpg'

            type: 'audio',
            src: [
                './audios/index.mp4'
            ],
            poster: './images/4.jpg'

            type: 'html',
            html: 'Text',
            poster: './images/5.jpg'

            type: 'dom',
            query: '#dfgdfhdhfghf',
            poster: './images/6.jpg'

    - adaptiveMedia <Object>
        The object describing the adaptive ranges for tiles.

            "imac": "2560-",
            "desktops-huge": "1920-2560",
            "desktops-big": "1600-1920",
            "desktops": "1440-1600",
            "base": "1280-1440",
            "tablet-landscape": "1024-1280",
            "tablet": "768-1024",
            "phone-landscape": "480-768",
            "phone": "320-480",
            "small": "-320"

    - gridAdaptiveSize <Object>
        The object describing adaptive tile sizes.

            "imac": 10,
            "desktops-huge": 10,
            "desktops-big": 10,
            "desktops": 8,
            "base": 6,
            "tablet-landscape": 6,
            "tablet": 4,
            "phone-landscape": 3,
            "phone": 2,
            "small": 1

    - tileAdaptiveMargin <Object>
        The object describing adaptive indentation between the tiles.

            "imac": 10,
            "desktops-huge": 10,
            "desktops-big": 10,
            "desktops": 8,
            "base": 6,
            "tablet-landscape": 6,
            "tablet": 4,
            "phone-landscape": 3,
            "phone": 2,
            "small": 1

    - tileAdaptivePadding <Object>
        The object describing adaptive spacing from the edge to the content tiles.

            "imac": 10,
            "desktops-huge": 10,
            "desktops-big": 10,
            "desktops": 8,
            "base": 6,
            "tablet-landscape": 6,
            "tablet": 4,
            "phone-landscape": 3,
            "phone": 2,
            "small": 1

- arrTiles
    The array of objects describing the tiles.

    - tileSize <number>
        The size of the tile in units of the mesh grid.

    - tileMargin <number>
        The distance between tiles in pixels.

    - tilePadding <number>
        The distance from the edge of the tile to the content in pixels.

    - tileContent <Object>
        The object describing the parameters of the default tile.

            type: 'image',
            src: './images/1.jpg'

            type: 'iframe',
            src: 'https://www.youtube.com/embed/w1I-HWAP6N8?controls=0&showinfo=0'

            type: 'video',
            src: [
                './videos/index.mp4'
            ],
            poster: './images/3.jpg'

            type: 'audio',
            src: [
                './audios/index.mp4'
            ],
            poster: './images/4.jpg'

            type: 'html',
            html: 'Text',
            poster: './images/5.jpg'

            type: 'dom',
            query: '#dfgdfhdhfghf',
            poster: './images/6.jpg'

    - tileAdaptiveSize <Object>
        The distance describing adaptive tile sizes in grid units.

            "imac": [2, 2],
            "desktops-huge": [2, 2],
            "desktops-big": [2, 2],
            "desktops": [2, 2],
            "base": [2, 2],
            "tablet-landscape": [3, 3],
            "tablet": [2, 2],
            "phone-landscape": [1, 1],
            "phone": [1, 1],
            "small": [1, 1]

    - tileAdaptiveMargin <Object>
        The object describing adaptive indentation between the tiles.

            "imac": 10,
            "desktops-huge": 10,
            "desktops-big": 10,
            "desktops": 8,
            "base": 6,
            "tablet-landscape": 6,
            "tablet": 4,
            "phone-landscape": 3,
            "phone": 2,
            "small": 1

    - tileAdaptivePadding <Object>
        The object describing adaptive spacing from the edge to the content tiles.

            "imac": 10,
            "desktops-huge": 10,
            "desktops-big": 10,
            "desktops": 8,
            "base": 6,
            "tablet-landscape": 6,
            "tablet": 4,
            "phone-landscape": 3,
            "phone": 2,
            "small": 1

Example

new CSTiles(
        document.body,
        {
            gridSize: 8,
            tileMargin: 5,
            tilePadding: 5,
            tileContent: {
                type: 'none'
            },
            adaptiveMedia: {
                'imac': '2560-',
                'desktops-huge': '1920-2560',
                'desktops-big': '1600-1920',
                'desktops': '1440-1600',
                'base': '1280-1440',
                'tablet-landscape': '1024-1280',
                'tablet': '768-1024',
                'phone-landscape': '480-768',
                'phone': '320-480',
                'small': '-320'
            }
        },
        [
            {
                tileSize: [2, 2],
                tileContent: {
                    type: 'tiles',
                    params: {
                        grid: {
                            gridSize: 8,
                            tileMargin: 0,
                            tilePadding: 0,
                            tileContent: {
                                type: 'none'
                            },
                            adaptiveMedia: {
                                'imac': '2560-',
                                'desktops-huge': '1920-2560',
                                'desktops-big': '1600-1920',
                                'desktops': '1440-1600',
                                'base': '1280-1440',
                                'tablet-landscape': '1024-1280',
                                'tablet': '768-1024',
                                'phone-landscape': '480-768',
                                'phone': '320-480',
                                'small': '-320'
                            }
                        },
                        tiles: [
                            {
                                tileSize: [2, 2],
                                tileContent: {
                                    type: 'image',
                                    src: './images/1.jpg'
                                },
                            },
                            {
                                tileSize: [2, 2],
                                tileContent: {
                                    type: 'iframe',
                                    src: 'https://www.youtube.com/embed/w1I-HWAP6N8?controls=0&showinfo=0'
                                },
                            },
                            {
                                tileSize: [2, 2],
                                tileContent: {
                                    type: 'video',
                                    src: [
                                        './videos/index.mp4'
                                    ],
                                    poster: './images/3.jpg'
                                },
                            },
                            {
                                tileSize: [2, 2],
                                tileContent: {
                                    type: 'audio',
                                    src: [
                                        './audios/index.mp4'
                                    ],
                                    poster: './images/4.jpg'
                                },
                            },
                            {
                                tileSize: [2, 2],
                                tileContent: {
                                    type: 'image',
                                    src: './images/5.jpg'
                                },
                            },
                            {
                                tileSize: [2, 2],
                                tileContent: {
                                    type: 'image',
                                    src: './images/8.jpg'
                                },
                            },
                            {
                                tileSize: [2, 2],
                                tileContent: {
                                    type: 'image',
                                    src: './images/9.jpg'
                                },
                            }
                        ]
                    }
                }
            },
            {
                tileSize: [2, 2],
                tileContent: {
                    type: 'image',
                    src: './images/1.jpg'
                },
            },
            {
                tileSize: [2, 2],
                tileContent: {
                    type: 'iframe',
                    src: 'https://www.youtube.com/embed/w1I-HWAP6N8?controls=0&showinfo=0'
                },
            },
            {
                tileSize: [2, 2],
                tileContent: {
                    type: 'video',
                    src: [
                        './videos/index.mp4'
                    ],
                    poster: './images/3.jpg'
                },
            },
            {
                tileSize: [2, 2],
                tileContent: {
                    type: 'audio',
                    src: [
                        './audios/index.mp4'
                    ],
                    poster: './images/4.jpg'
                },
            },
            {
                tileSize: [2, 2],
                tileContent: {
                    type: 'html',
                    html: 'Text',
                    poster: './images/5.jpg'
                },
            },
            {
                tileSize: [2, 2],
                tileContent: {
                    type: 'dom',
                    query: '#dfgdfhdhfghf',
                    poster: './images/6.jpg'
                },
            },
            {
                tileSize: [2, 2],
                tileContent: {
                    type: 'image',
                    src: './images/7.jpg'
                },
            },
            {
                tileSize: [2, 2],
                tileContent: {
                    type: 'image',
                    src: './images/8.jpg'
                },
            },
            {
                tileSize: [2, 2],
                tileContent: {
                    type: 'image',
                    src: './images/9.jpg'
                },
            }
        ]
);