MDK Logo

Icons

Purpose-built icons for mining applications

Icons

The @mdk/core package includes 70+ icons to simplify development of Bitcoin mining applications.

Import

// Import individual icons
import { DashboardNavIcon, HashrateStatIcon, MiningStatusIcon } from '@mdk/core'

// Import the factory function
import { createIcon } from '@mdk/core'

// Import types
import type { IconProps, CreateIconOptions } from '@mdk/core'

Icon props

All icons accept the IconProps interface:

PropTypeDefaultDescription
sizenumber | string24Sets both width and height
colorstring'currentColor'Icon color (single-color icons only)
widthnumber | stringnoneOverride width
heightnumber | stringnoneOverride height
classNamestringnoneCSS class
styleCSSPropertiesnoneInline styles

Basic usage

import { DashboardNavIcon, HashrateStatIcon } from '@mdk/core'

// Default size (24px)
<DashboardNavIcon />

// Custom size
<HashrateStatIcon size={32} />

// Custom color
<MiningStatusIcon color="#72F59E" />

// With className
<SettingsNavIcon className="sidebar-icon" />

Available icons

Icons for sidebar and navigation menus:

IconNameDescription
DashboardNavIconDashboard/home
FarmsNavIconMining farms
FinancialsNavIconFinancial reports
InventoryNavIconEquipment inventory
MinersOverviewNavIconMiner overview
OperationsNavIconOperations
PoolManagerNavIconPool management
ReportingNavIconReporting
SettingsNavIconSettings
UserManagementNavIconUser management
ExplorerNavIconExplorer
AlertsNavIconAlerts
CabinetWidgetNavIconCabinet widgets
ContainerWidgetsNavIconContainer widgets

Status icons

Icons for displaying operational status:

IconNameDescription
MiningStatusIconActive mining
OfflineStatusIconOffline
SleepStatusIconSleep/standby mode
ErrorStatusIconError state
LiveIconLive/active
OfflineIconOffline indicator

Alarm icons

Icons for alerts and alarms:

IconNameDescription
TemperatureAlarmIconTemperature alarm
PressureAlarmIconPressure alarm
FluidAlarmIconFluid/coolant alarm
OfflineAlarmIconOffline alarm
OtherAlarmIconGeneric alarm
AlertTriangleIconWarning triangle

Weather icons

Icons for environmental conditions:

IconNameDescription
SunnyIconSunny/clear
CloudyIconCloudy
RainyIconRain
SnowyIconSnow
PartlyCloudyIconPartly cloudy
RainThunderIconThunderstorm

Mining/stats icons

Icons for mining metrics and statistics:

IconNameDescription
HashrateCardIconHashrate display
HashrateStatIconHashrate statistic
MinersStatIconMiner count
FarmStarIconFarm highlight
FarmAlertIconFarm alert
MinerOverviewIconMiner overview
MinerExplorerIconMiner explorer
PoolsIconMining pools
ProductionDataIconProduction data

Measurement icons

Icons for measurements and readings:

IconNameDescription
PowerIconPower consumption
FanIconFan/cooling
FrequencyIconFrequency
EfficiencyIconEfficiency
ConsumptionIconConsumption
TemperatureCelsiusIconTemperature (°C)
TemperatureIndicatorIconTemperature indicator
TemperatureWeatherIconTemperature/weather
CoolingDropIconCooling/liquid

UI icons

General UI icons:

IconNameDescription
ArrowIconArrow (direction)
RightArrowIconRight arrow
RightNavigateIconNavigate right
PinIconPin/favorite
UnPinIconUnpin
MenuIconMenu hamburger
ExportIconExport data
GoogleIconGoogle logo
NotificationBellIconNotifications
SettingsHeaderIconSettings gear
SignOutIconSign out
UserAvatarIconUser avatar
VolumeOnIconVolume on
VolumeOffIconVolume off
CommentIconComment
IncreaseIconIncrease/up
DecreaseIconDecrease/down
ProfitArrowIconProfit indicator
BtcCardIconBitcoin card
ModeIconMode toggle
ScaleControlIconScale control
SiteOverviewIconSite overview
ActionsTickIconAction complete

Creating custom icons

Use createIcon to create custom icons following the same pattern:

import { createIcon } from '@mdk/core'

export const MyCustomIcon = createIcon({
  displayName: 'MyCustomIcon',
  viewBox: '0 0 24 24',
  defaultWidth: 24,
  defaultHeight: 24,
  path: (
    <path
      d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"
      stroke="currentColor"
      strokeWidth={2}
      strokeLinecap="round"
      strokeLinejoin="round"
    />
  ),
})

CreateIconOptions

OptionTypeDefaultDescription
displayNamestringnoneRequired: Component display name
viewBoxstringnoneRequired: SVG viewBox
defaultWidthnumber24Default width
defaultHeightnumber24Default height
multiColorbooleanfalseMulti-color icon flag
pathReactNode | functionnoneRequired: SVG path content

Dynamic color icons

For icons that need dynamic colors:

export const DynamicColorIcon = createIcon({
  displayName: 'DynamicColorIcon',
  viewBox: '0 0 24 24',
  path: ({ color }) => (
    <circle cx="12" cy="12" r="10" fill={color} />
  ),
})

On this page