Compare commits
No commits in common. "f0e549c3e7edba3ca4ca7dac1e6a8d5300972e61" and "7a2002c98f9f6875495ad6d15d9fbdab7c2a5780" have entirely different histories.
f0e549c3e7
...
7a2002c98f
@ -18,7 +18,7 @@ Each game features specific slot items displayed on the reel panel. By default,
|
|||||||
|
|
||||||
For `Roma Legacy`, there are 8 slot items total, including **Wild**.
|
For `Roma Legacy`, there are 8 slot items total, including **Wild**.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
To define the 7 additional items for this game, create the following script:
|
To define the 7 additional items for this game, create the following script:
|
||||||
|
|
||||||
@ -109,7 +109,7 @@ When the game is opened, the reel panel should display a **default pattern** tha
|
|||||||
|
|
||||||
For instance, the following item pattern should not be used, as it contains two win lines:
|
For instance, the following item pattern should not be used, as it contains two win lines:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
To keep the gameplay experience fresh, the displayed pattern should be selected randomly each time. At a minimum, three non-winning patterns should be available.
|
To keep the gameplay experience fresh, the displayed pattern should be selected randomly each time. At a minimum, three non-winning patterns should be available.
|
||||||
|
|
||||||
@ -138,7 +138,7 @@ The results of those 3 patterns are shown below:
|
|||||||
|
|
||||||
| Pattern 1 | Pattern 2 | Pattern 3 |
|
| Pattern 1 | Pattern 2 | Pattern 3 |
|
||||||
|---------------------------------|---------------------------------|---------------------------------|
|
|---------------------------------|---------------------------------|---------------------------------|
|
||||||
||||
|
||||
|
||||||
|
|
||||||
## Hyper Gaming Integration
|
## Hyper Gaming Integration
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ The login simulator scene allows you to run the game using a session account dur
|
|||||||
|
|
||||||
This scene includes a `login-hyper-gaming` object used to establish a connection with a running environment of your choice.
|
This scene includes a `login-hyper-gaming` object used to establish a connection with a running environment of your choice.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Available environments:
|
Available environments:
|
||||||
|
|
||||||
@ -25,5 +25,5 @@ To use preview scene, simply choose an Enviroment and put in the Game ID, then s
|
|||||||
:::tip
|
:::tip
|
||||||
You should set the preview scene as a start scene in `Project Setting`. With that, no matter which scene your are on, when the game starts, it will always load preview scene first.
|
You should set the preview scene as a start scene in `Project Setting`. With that, no matter which scene your are on, when the game starts, it will always load preview scene first.
|
||||||
|
|
||||||

|

|
||||||
:::
|
:::
|
@ -22,7 +22,7 @@ Hyper Slot Game uses a two-stage loading process:
|
|||||||
|
|
||||||
| Preload | Postload |
|
| Preload | Postload |
|
||||||
|--------------------------------------|---------------------------------|
|
|--------------------------------------|---------------------------------|
|
||||||
|  |  |
|
|  |  |
|
||||||
|
|
||||||
Preload and postload assets are organized by scene.
|
Preload and postload assets are organized by scene.
|
||||||
|
|
||||||
@ -51,11 +51,11 @@ Based on the selected language configuration, the game will download the corresp
|
|||||||
|
|
||||||
| Assets | EN | ZH | TH |
|
| Assets | EN | ZH | TH |
|
||||||
|---------------|-----------------------------------------|---------------------------------------------|---------------------------------------------|
|
|---------------|-----------------------------------------|---------------------------------------------|---------------------------------------------|
|
||||||
|Text Buy Bonus||||
|
|Text Buy Bonus||||
|
||||||
|
|
||||||
## Setting Up the Preload Scene
|
## Setting Up the Preload Scene
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
To set up the Preload Scene, simply open the scene and run the **preload-hyper** command from the **P4F Editor** package.
|
To set up the Preload Scene, simply open the scene and run the **preload-hyper** command from the **P4F Editor** package.
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ This is where the actual preload asset downloading begins, accompanied by a prog
|
|||||||
|
|
||||||
In addition to loading assets, Hyper Slot Game also uses this scene to showcase the game’s main features through in-game advertisements.
|
In addition to loading assets, Hyper Slot Game also uses this scene to showcase the game’s main features through in-game advertisements.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Loading Hyper vs New Loading Hyper
|
## Loading Hyper vs New Loading Hyper
|
||||||
|
|
||||||
@ -23,29 +23,29 @@ In Hyper Slot games, there are 2 styles of loading scene:
|
|||||||
|
|
||||||
| loading-hyper | new-loading-hyper |
|
| loading-hyper | new-loading-hyper |
|
||||||
|-------------------------------------------------------|-----------------------------------------------------------------|
|
|-------------------------------------------------------|-----------------------------------------------------------------|
|
||||||
|||
|
|||
|
||||||
|
|
||||||
## Setup loading scene
|
## Setup loading scene
|
||||||
|
|
||||||
To set up the loading scene, use the appropriate command from the `P4F Editor` package: `loading-hyper` or `new-loading-hyper`, depending on your requirements.
|
To set up the loading scene, use the appropriate command from the `P4F Editor` package: `loading-hyper` or `new-loading-hyper`, depending on your requirements.
|
||||||
|
|
||||||
 
|
 
|
||||||
|
|
||||||
Running either command will generate a complete loading scene, including both landscape and portrait layouts.
|
Running either command will generate a complete loading scene, including both landscape and portrait layouts.
|
||||||
|
|
||||||
Once the scene is generated, you can customize it by positioning UI elements and assigning the appropriate assets.
|
Once the scene is generated, you can customize it by positioning UI elements and assigning the appropriate assets.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
One of the best features of these commands is that they can also automatically load all required assets for the loading scene.
|
One of the best features of these commands is that they can also automatically load all required assets for the loading scene.
|
||||||
|
|
||||||
If you run the command without setting up the assets, you’ll see an empty loading scene like this:
|
If you run the command without setting up the assets, you’ll see an empty loading scene like this:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
However, with a proper asset setup, the loading scene will appear fully populated, like this:
|
However, with a proper asset setup, the loading scene will appear fully populated, like this:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
:::info
|
:::info
|
||||||
For detailed guidelines on how to set up loading assets, refer to the [Game Asset Structure](../category/game-asset-structure) manual.
|
For detailed guidelines on how to set up loading assets, refer to the [Game Asset Structure](../category/game-asset-structure) manual.
|
||||||
@ -55,5 +55,5 @@ For detailed guidelines on how to set up loading assets, refer to the [Game Asse
|
|||||||
For testing purposes, you don’t need a full asset setup. \
|
For testing purposes, you don’t need a full asset setup. \
|
||||||
Just set up the ***btn-start*** node in the Node Tree and you’re good to go.
|
Just set up the ***btn-start*** node in the Node Tree and you’re good to go.
|
||||||
|
|
||||||

|

|
||||||
:::
|
:::
|
@ -10,7 +10,7 @@ This is where all the magic happen.
|
|||||||
|
|
||||||
Main scene is the most complicated scene with hundreds of object, script and config.
|
Main scene is the most complicated scene with hundreds of object, script and config.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Yet it is suprisingly simple to use.
|
Yet it is suprisingly simple to use.
|
||||||
|
|
||||||
@ -21,90 +21,8 @@ In fact, if all of the other scenes are setup properly, you can even run test th
|
|||||||
|
|
||||||
Try to run the project, you'll the result as below. It doesn't look like much but it is actually a game running without visual assets.
|
Try to run the project, you'll the result as below. It doesn't look like much but it is actually a game running without visual assets.
|
||||||
|
|
||||||

|

|
||||||
:::
|
:::
|
||||||
|
|
||||||
## Setup Reel Slot
|
## Setup Reel Slot
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
1. Prepare the asset for symbols.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
2. Add symbols to **SpriteFrameProvider** which allows those symbols to be accessed globally from the code.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
3. Config reel slot using `reel-scroller-helper`.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
| Properties | Explaination | Example |
|
|
||||||
|------------|--------------|---------|
|
|
||||||
|**Cell Item Script Name**|The name of the script will be attached to each cell item.||
|
|
||||||
| **Scroller Script Name** | the name of the script for handling the spinning logic.||
|
|
||||||
|**Row Count x Reel Count**| the number of Slot Item each row and column in the reel slot panel.||
|
|
||||||
|**Cell Size**| the size of each cells.||
|
|
||||||
|**Cell Spacing**| the distance between each cells horizontally and vertically.||
|
|
||||||
|**Cell Dim Color**| set the dark color for the non-win cells when showing winning animation for each line.||
|
|
||||||
|**Top Count and Bot Count**| for spinning logic to work, a certain number of cell will be added to the top and bottom of the reel.||
|
|
||||||
|
|
||||||
4. Generate panel using `reel-scroller-helper`.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
:::tip
|
|
||||||
There is a popup panel covering the entire game scene. You should turn off this panel to see the other component clearly.
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Setup Spinning Panel
|
|
||||||
|
|
||||||
Reel slot panel is just one part one the spinning panel.
|
|
||||||
|
|
||||||
There are other panels that need to be setup: **landing-panel**, **tension-panel**, **present-win-cell-panel** and **present-win-border-panel**.
|
|
||||||
|
|
||||||
The setup is very straightforward by using the `Generate Panel` command in each panel's helper class.
|
|
||||||
|
|
||||||
- Landing Panel:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
- Present Win Cell Panel:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
- Present Win Cell Panel:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
- Tension Panel:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
If the tension use a custom size frame, we can change the option **sizeMode** to **Custom** and set the static frame and size.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Setup UI Panel
|
|
||||||
|
|
||||||
> To be Added:
|
|
||||||
> - Different UI Layout on Desktop and Mobile
|
|
||||||
> - Which helper/p4f menu can be used
|
|
||||||
|
|
||||||
## Setup Background
|
|
||||||
|
|
||||||
> To Be Added:
|
|
||||||
> - show how many background: desktop, mobile, main game, free game, gamble, reel bg, slot panel bg.
|
|
||||||
|
|
||||||
## Setup Animation Provider
|
|
||||||
|
|
||||||
> To Be Added:
|
|
||||||
> - How to run helper / p4f menu
|
|
||||||
> - How to setup static frame / fps
|
|
||||||
|
|
||||||
## Setup Popup Panel
|
|
||||||
|
|
||||||
> To Be Added:
|
|
||||||
> - Prepare the asset
|
|
||||||
> - Run helper / p4f menu or setup manually
|
|
Before Width: | Height: | Size: 9.7 KiB |
Before Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 239 KiB |
Before Width: | Height: | Size: 329 KiB |
Before Width: | Height: | Size: 223 KiB |
Before Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 207 KiB |
Before Width: | Height: | Size: 122 KiB |
Before Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 177 KiB After Width: | Height: | Size: 177 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 116 KiB |
Before Width: | Height: | Size: 249 KiB After Width: | Height: | Size: 249 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 339 KiB After Width: | Height: | Size: 339 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 180 KiB After Width: | Height: | Size: 180 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 428 KiB After Width: | Height: | Size: 428 KiB |
Before Width: | Height: | Size: 434 KiB After Width: | Height: | Size: 434 KiB |
Before Width: | Height: | Size: 442 KiB After Width: | Height: | Size: 442 KiB |
Before Width: | Height: | Size: 113 KiB After Width: | Height: | Size: 113 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 109 KiB After Width: | Height: | Size: 109 KiB |
Before Width: | Height: | Size: 392 KiB After Width: | Height: | Size: 392 KiB |
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 77 KiB |
Before Width: | Height: | Size: 483 KiB After Width: | Height: | Size: 483 KiB |
@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
sidebar_position: 1
|
|
||||||
---
|
|
||||||
|
|
||||||
# Free Spin
|
|
||||||
|
|
||||||
> To be added
|
|
@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
sidebar_position: 2
|
|
||||||
---
|
|
||||||
|
|
||||||
# Gamble
|
|
||||||
|
|
||||||
> To be added
|
|
@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
sidebar_position: 3
|
|
||||||
---
|
|
||||||
|
|
||||||
# Powerplay
|
|
||||||
|
|
||||||
> To be added
|
|
@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
sidebar_position: 4
|
|
||||||
---
|
|
||||||
|
|
||||||
# Respin
|
|
||||||
|
|
||||||
> To be added
|
|
@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
sidebar_position: 5
|
|
||||||
---
|
|
||||||
|
|
||||||
# Custom Bonus Game
|
|
||||||
|
|
||||||
> To be added
|
|
@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
sidebar_position: 6
|
|
||||||
---
|
|
||||||
|
|
||||||
# Free Round
|
|
||||||
|
|
||||||
> To be added
|
|
@ -1,17 +0,0 @@
|
|||||||
{
|
|
||||||
"position": 2,
|
|
||||||
"label": "Setup Special Feature",
|
|
||||||
"collapsible": true,
|
|
||||||
"collapsed": false,
|
|
||||||
"link": {
|
|
||||||
"type": "generated-index",
|
|
||||||
"title": "Setup Special Feature",
|
|
||||||
"description": "This section will guide you through the process of setting up the special feature logic and structure.",
|
|
||||||
"keywords": [
|
|
||||||
"setup",
|
|
||||||
"special feature",
|
|
||||||
"game logic",
|
|
||||||
"structure"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
sidebar_position: 1
|
|
||||||
---
|
|
||||||
|
|
||||||
# Default Asset Structure
|
|
||||||
|
|
||||||
> To be added
|
|
@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
sidebar_position: 2
|
|
||||||
---
|
|
||||||
|
|
||||||
# Texture Packer
|
|
||||||
|
|
||||||
> To be added
|
|
@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
sidebar_position: 1
|
|
||||||
---
|
|
||||||
|
|
||||||
# Custom Javascript Library
|
|
||||||
|
|
||||||
> To be added
|
|
@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
sidebar_position: 2
|
|
||||||
---
|
|
||||||
|
|
||||||
# Hyper Package
|
|
||||||
|
|
||||||
> To be added
|
|
@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
"position": 2,
|
|
||||||
"label": "Custom Cocos Engine",
|
|
||||||
"collapsible": true,
|
|
||||||
"collapsed": false,
|
|
||||||
"link": {
|
|
||||||
"type": "generated-index",
|
|
||||||
"title": "Custom Cocos Engine",
|
|
||||||
"description": "Explain each feature of the custom Cocos engine and how to use it.",
|
|
||||||
"keywords": [
|
|
||||||
"custom",
|
|
||||||
"cocos",
|
|
||||||
"engine",
|
|
||||||
"game engine",
|
|
||||||
"game logic",
|
|
||||||
"structure"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"position": 10,
|
|
||||||
"label": "Submodules",
|
|
||||||
"collapsible": true,
|
|
||||||
"collapsed": false,
|
|
||||||
"link": {
|
|
||||||
"type": "generated-index",
|
|
||||||
"title": "Submodules",
|
|
||||||
"description": "Explain the purpose of each submodules and how to use them effectively.",
|
|
||||||
"keywords": [
|
|
||||||
"submodules",
|
|
||||||
"game logic",
|
|
||||||
"structure"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
3
docs/custom-cocos-engine/custom-cocos-engine.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Custom Cocos Engine
|
||||||
|
|
||||||
|
> To be added
|
@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"label": "FAQS",
|
"label": "Engine Option",
|
||||||
"collapsible": true,
|
"collapsible": true,
|
||||||
"collapsed": false,
|
"collapsed": false,
|
||||||
"link": {
|
"link": {
|
||||||
"title": "FAQS"
|
"title": "Engine Option"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -6,11 +6,10 @@
|
|||||||
"link": {
|
"link": {
|
||||||
"type": "generated-index",
|
"type": "generated-index",
|
||||||
"title": "Game Asset Structure",
|
"title": "Game Asset Structure",
|
||||||
"description": "Explain the structure of game assets and how to use them.",
|
"description": "Asset folder structure for Hyper Slot Game",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"game",
|
"setup",
|
||||||
"asset",
|
"main game",
|
||||||
"structure",
|
|
||||||
"game logic",
|
"game logic",
|
||||||
"structure"
|
"structure"
|
||||||
]
|
]
|
1
docs/game-asset-structure/default-assets-structure.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
# Default Asset Structure
|
Before Width: | Height: | Size: 402 KiB After Width: | Height: | Size: 189 KiB |
@ -4,4 +4,4 @@ sidebar_position: 4
|
|||||||
|
|
||||||
# Hyper Slot Template
|
# Hyper Slot Template
|
||||||
|
|
||||||
This template is designed for Hyper Slot style of game which contains almost everything needed to start with ease.
|
This template is designed for Hyper Slot style of game which contains almost everything needed to star with ease.
|
10
docs/submodule/_category_.json
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"position": 10,
|
||||||
|
"label": "Submodules",
|
||||||
|
"collapsible": true,
|
||||||
|
"collapsed": false,
|
||||||
|
"link": {
|
||||||
|
"type": "generated-index",
|
||||||
|
"title": "Submodule Documentation"
|
||||||
|
}
|
||||||
|
}
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
@ -1,6 +1,6 @@
|
|||||||
import Heading from '@theme/Heading';
|
import type {ReactNode} from 'react';
|
||||||
import clsx from 'clsx';
|
import clsx from 'clsx';
|
||||||
import type { ReactNode } from 'react';
|
import Heading from '@theme/Heading';
|
||||||
import styles from './styles.module.css';
|
import styles from './styles.module.css';
|
||||||
|
|
||||||
type FeatureItem = {
|
type FeatureItem = {
|
||||||
@ -15,7 +15,8 @@ const FeatureList: FeatureItem[] = [
|
|||||||
Svg: require('@site/static/img/undraw_docusaurus_mountain.svg').default,
|
Svg: require('@site/static/img/undraw_docusaurus_mountain.svg').default,
|
||||||
description: (
|
description: (
|
||||||
<>
|
<>
|
||||||
Use the sidebar menu to quickly find the topics you need — whether you're setting up your first project or exploring advanced features
|
Docusaurus was designed from the ground up to be easily installed and
|
||||||
|
used to get your website up and running quickly.
|
||||||
</>
|
</>
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
@ -24,23 +25,24 @@ const FeatureList: FeatureItem[] = [
|
|||||||
Svg: require('@site/static/img/undraw_docusaurus_tree.svg').default,
|
Svg: require('@site/static/img/undraw_docusaurus_tree.svg').default,
|
||||||
description: (
|
description: (
|
||||||
<>
|
<>
|
||||||
You'll find practical examples, step-by-step instructions, and detailed explaination, so you can focus on building your HTML5 slot game with confidence and speed.
|
Docusaurus lets you focus on your docs, and we'll do the chores. Go
|
||||||
|
ahead and move your docs into the <code>docs</code> directory.
|
||||||
</>
|
</>
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Beginner Friendly',
|
title: 'Powered by React',
|
||||||
Svg: require('@site/static/img/undraw_docusaurus_react.svg').default,
|
Svg: require('@site/static/img/undraw_docusaurus_react.svg').default,
|
||||||
description: (
|
description: (
|
||||||
<>
|
<>
|
||||||
Designed for beginners, it takes care of the complex logic so you can focus on building your game. With just a few lines of code, you’ll have a working slot machine ready to go!
|
Extend or customize your website layout by reusing React. Docusaurus can
|
||||||
|
be extended while reusing the same header and footer.
|
||||||
</>
|
</>
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
function Feature({ title, Svg, description }: FeatureItem)
|
function Feature({title, Svg, description}: FeatureItem) {
|
||||||
{
|
|
||||||
return (
|
return (
|
||||||
<div className={clsx('col col--4')}>
|
<div className={clsx('col col--4')}>
|
||||||
<div className="text--center">
|
<div className="text--center">
|
||||||
@ -54,8 +56,7 @@ function Feature({ title, Svg, description }: FeatureItem)
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function HomepageFeatures(): ReactNode
|
export default function HomepageFeatures(): ReactNode {
|
||||||
{
|
|
||||||
return (
|
return (
|
||||||
<section className={styles.features}>
|
<section className={styles.features}>
|
||||||
<div className="container">
|
<div className="container">
|
||||||
|