Mature Romance UI
A vector UI kit for romance, dating and visual-novel games: lace-trimmed wine and night-plum silk dialog boxes with name plates, delicate pill buttons with gold threads and pearls, choice frames, affinity hearts, a heart meter, memory frames and lockets, save slots and a full mobile kit. SVG + PNG 1x/2x/4x.
Basic
Free
66 of the 328 sprites, no watermark: 16 buttons in every state, 3 panels, 17 icons, 10 mobile buttons and more.
Download Basic ZIP, 2.3 MB. Free with your email, no password.Full pack
US$1.99
All 328 sprites, the SVG sources and the mockups.
ZIP, 16.1 MB. The preview is watermarked. Buy with the email you sign in with here and the clean files unlock right away.- Sprites
- 328 (12 animated)
- Style
- Vector UI (SVG + PNG)
- View
- Ui / hud
- Tile size
- 8 px
- Download
- ZIP, 16.1 MB (Basic 2.3 MB)
- Price
- US$1.99, Basic free
- Version
- 1.0 (Oct 31, 2026)
- License
- Cocotas Lab Asset License
What's inside
Every sprite as its own PNG, one sprite sheet per category with a JSON map, animation strips, a preview and a README. Sprites marked Basic are also in the free Basic.
Buttons (28)
- button_primary_normal160×56Basic
- button_primary_hover160×56Basic
- button_primary_pressed160×56Basic
- button_primary_disabled160×56Basic
- button_secondary_normal160×56Basic
- button_secondary_hover160×56Basic
- button_secondary_pressed160×56Basic
- button_secondary_disabled160×56Basic
- button_pearl_normal160×56
- button_pearl_hover160×56
- button_pearl_pressed160×56
- button_pearl_disabled160×56
- button_gold_normal160×56
- button_gold_hover160×56
- button_gold_pressed160×56
- button_gold_disabled160×56
- button_danger_normal160×56
- button_danger_hover160×56
- button_danger_pressed160×56
- button_danger_disabled160×56
- button_icon_normal56×56Basic
- button_icon_hover56×56Basic
- button_icon_pressed56×56Basic
- button_icon_disabled56×56Basic
- button_round_normal64×64Basic
- button_round_hover64×64Basic
- button_round_pressed64×64Basic
- button_round_disabled64×64Basic
Dialogue (14)
- dialog_box_silk384×144
- dialog_box_velvet384×144
- dialog_box_pearl384×144
- dialog_box_thought384×144
- dialog_strip_silk256×128
- nameplate_wine176×40
- nameplate_plum176×40
- nameplate_rose176×40
- nameplate_gold176×40
- nameplate_orchid176×40
- nameplate_moon176×40
- advance_heart24×24, 8 fr
- advance_chevron24×24, 8 fr
- voice_wave32×24, 6 fr
Affinity (19)
- affinity_card192×256
- affinity_heart_full24×24
- affinity_heart_half24×24
- affinity_heart_empty24×24
- affinity_bar_frame240×40
- affinity_bar_fill240×40
- affinity_tick8×24
- heart_meter_back96×96
- heart_meter_fill96×96
- heart_meter_frame96×96
- portrait_frame_cameo128×160
- portrait_frame_round96×96
- portrait_placeholder96×128
- affinity_up48×48, 8 fr
- affinity_down48×48, 8 fr
- affinity_tier_196×24
- affinity_tier_296×24
- affinity_tier_396×24
- affinity_tier_496×24
Icons (58)
- heart32×32Basic
- coin32×32Basic
- gem32×32Basic
- key32×32Basic
- star32×32Basic
- settings32×32Basic
- pause32×32Basic
- play32×32Basic
- home32×32Basic
- back32×32Basic
- close32×32Basic
- check32×32Basic
- cross32×32Basic
- plus32×32Basic
- minus32×32Basic
- info32×32Basic
- lock32×32Basic
- unlock32×32
- shop32×32
- map32×32
- quest32×32
- trophy32×32
- sound_on32×32
- sound_off32×32
- music_on32×32
- music_off32×32
- share32×32
- trash32×32
- cart32×32
- gift32×32
- bag32×32
- restart32×32
- heart_empty32×32
- star_empty32×32
- heart_broken32×32
- book32×32
- bookmark32×32
- letter32×32
- phone32×32
- calendar32×32
- clock32×32
- gallery32×32
- flowchart32×32
- dialogue32×32
- voice32×32
- eye32×32
- eye_closed32×32
- character32×32
- time_morning32×32
- time_day32×32
- time_evening32×32
- time_night32×32
- rose32×32
- ring32×32
- mask32×32
- candle32×32
- hearts_linked32×32
- bubble_heart32×32
Items (24)
- ring_box40×40
- bouquet40×40
- single_rose40×40
- chocolate_box40×40
- cake_slice40×40
- teacup40×40
- pearl_necklace40×40
- love_letter40×40
- hair_ribbon40×40
- music_box40×40
- plush_bear40×40
- novel40×40
- sketchbook40×40
- umbrella40×40
- scarf40×40
- photo40×40
- tickets40×40
- heart_locket40×40
- perfume40×40
- pocket_watch40×40
- potted_plant40×40
- paper_lantern40×40
- folding_fan40×40
- flower_hairpin40×40
Panels (16)
- panel_silk128×128Basic
- panel_velvet128×128Basic
- panel_pearl128×128Basic
- panel_titled160×160
- panel_inset96×96
- panel_dialog192×128
- panel_tooltip96×48
- title_banner256×64
- divider160×16
- divider_lace160×16
- divider_flourish160×24
- ornament_corner32×32
- ornament_pearl16×16
- ornament_heart16×16
- ornament_rose24×24
- ornament_bow48×32
Saves (18)
- memory_frame_new160×96
- save_slot320×96
- save_slot_hover320×96
- save_slot_selected320×96
- save_slot_empty320×96
- save_ribbon_new32×48
- memory_frame160×96
- memory_frame_locked160×96
- memory_locket64×64
- memory_locket_locked64×64
- chapter_card384×96
- page_dot16×16
- page_dot_active16×16
- flow_node_seen40×40
- flow_node_current40×40
- flow_node_locked40×40
- flow_node_ending40×40
- flow_line64×16
Mobile (50)
- dpad_8_up_right128×128
- joystick_base128×128
- joystick_knob64×64
- joystick_knob_pressed64×64
- dpad_4128×128
- dpad_4_up128×128
- dpad_4_right128×128
- dpad_4_down128×128
- dpad_4_left128×128
- dpad_8128×128
- dpad_8_up128×128
- dpad_8_right128×128
- dpad_8_down_right128×128
- dpad_8_down128×128
- dpad_8_down_left128×128
- dpad_8_left128×128
- dpad_8_up_left128×128
- button_a72×72Basic
- button_a_pressed72×72Basic
- button_b72×72Basic
- button_b_pressed72×72Basic
- button_x72×72Basic
- button_x_pressed72×72Basic
- button_y72×72Basic
- button_y_pressed72×72Basic
- button_jump72×72
- button_jump_pressed72×72
- button_attack72×72
- button_attack_pressed72×72
- button_interact72×72
- button_interact_pressed72×72
- button_dash72×72
- button_dash_pressed72×72
- button_skip72×72
- button_skip_pressed72×72
- button_auto72×72
- button_auto_pressed72×72
- button_gift72×72
- button_gift_pressed72×72
- button_flirt72×72
- button_flirt_pressed72×72
- button_pause64×64Basic
- button_pause_pressed64×64Basic
- swipe_up64×64
- swipe_right64×64
- swipe_down64×64
- swipe_left64×64
- tabbar_bg96×80
- tabbar_item_active80×64
- tabbar_badge24×24
Emotes (11)
- emote_heart32×32
- emote_hearts32×32
- emote_blush32×32
- emote_music32×32
- emote_sweat32×32
- emote_exclaim32×32
- emote_question32×32
- emote_ellipsis32×32
- emote_anger32×32
- emote_sparkle32×32
- emote_sleep32×32
Slots (8)
- slot_legendary64×64
- slot_epic64×64
- slot_rare64×64
- slot_uncommon64×64
- slot_empty64×64Basic
- slot_hover64×64Basic
- slot_selected64×64Basic
- slot_locked64×64
Choices (7)
- choice_hover448×56
- choice_normal448×56
- choice_selected448×56
- choice_seen448×56
- choice_locked448×56
- choice_timer_frame448×16
- choice_timer_fill448×16
Counters (8)
- counter_coins160×48
- counter_gems160×48
- counter_lives160×48
- counter_score160×48
- counter_timer160×48
- counter_days160×48
- counter_messages160×48
- counter_plate160×48
Bars (7)
- bar_level_frame240×48
- bar_frame208×24Basic
- bar_fill_health208×24Basic
- bar_fill_energy208×24
- bar_fill_stamina208×24
- bar_fill_xp208×24
- bar_level_fill240×48
Controls (13)
- toggle_on80×40Basic
- toggle_off80×40Basic
- checkbox_off40×40Basic
- checkbox_on40×40Basic
- radio_off40×40
- radio_on40×40
- slider_track160×24Basic
- slider_fill160×24Basic
- slider_knob40×40Basic
- dropdown200×48
- dropdown_item_selected200×40
- scrollbar_track24×160
- scrollbar_thumb24×64
Fx (7)
- coin_spin40×40, 8 fr
- heart_pulse32×32, 6 fr
- sparkle_twinkle32×32, 8 fr
- heart_burst48×48, 8 fr
- loading_pearls32×32, 12 fr
- typing_dots40×32, 6 fr
- rose_petals40×40, 12 fr
Quickmenu (17)
- qm_auto24×24
- qm_bar384×40
- qm_button_normal48×40
- qm_button_hover48×40
- qm_button_active48×40
- qm_button_disabled48×40
- qm_skip24×24
- qm_log24×24
- qm_save24×24
- qm_load24×24
- qm_qsave24×24
- qm_qload24×24
- qm_settings24×24
- qm_hide24×24
- qm_back24×24
- qm_voice24×24
- qm_menu24×24
Backlog (5)
- backlog_panel192×192
- backlog_row384×48
- backlog_row_hover384×48
- backlog_voice32×32
- backlog_jump32×32
Tabs (2)
- tab_active128×48Basic
- tab_inactive128×48Basic
Textures (4)
- texture_silk64×64
- texture_damask64×64
- texture_lace64×64
- texture_letter64×64
Arrows (12)
- arrow_up32×32Basic
- arrow_right32×32Basic
- arrow_down32×32Basic
- arrow_left32×32Basic
- chevron_up32×32
- chevron_right32×32
- chevron_down32×32
- chevron_left32×32
- cursor_arrow32×32Basic
- cursor_hand32×32Basic
- cursor_hand_click32×32
- cursor_quill32×32
Drawn by code (procedural generation) and checked by our own tools.
Animations
advance_heart8 frames, 8 fps
advance_chevron8 frames, 8 fps
voice_wave6 frames, 10 fps
affinity_up8 frames, 10 fps
affinity_down8 frames, 10 fps
coin_spin8 frames, 12 fps
heart_pulse6 frames, 10 fps
sparkle_twinkle8 frames, 8 fps
heart_burst8 frames, 12 fps
loading_pearls12 frames, 12 fps
typing_dots6 frames, 8 fps
rose_petals12 frames, 10 fps
License in short
You can
- Use it in personal and commercial games and apps
- Edit, recolor and combine the sprites
- Skip the credit (it's appreciated, not required)
You can't
- Resell or share the assets themselves, alone or in another pack
- Use them to train AI models