Skip to content

Instantly share code, notes, and snippets.

@Aveline67
Last active November 26, 2022 22:00
Show Gist options
  • Save Aveline67/3776295a82a73ff3615aae6b54e51071 to your computer and use it in GitHub Desktop.
Save Aveline67/3776295a82a73ff3615aae6b54e51071 to your computer and use it in GitHub Desktop.
Tag Helpers in MVC6 for font awesome and material icons
using Microsoft.AspNetCore.Razor.TagHelpers;
namespace TagHelpers
{
[HtmlTargetElement("i", Attributes = FontAwesomeIconValueAttributeName)]
public class FontAwesomeTagHelper : TagHelper
{
private const string FontAwesomeIconValueAttributeName = "fa";
[HtmlAttributeName(FontAwesomeIconValueAttributeName)]
public FontAwesomeIcon FontAwesomeIcon { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
{
output.Attributes.SetAttribute("class", $"fa fa-{(FontAwesomeIcon).ToString().Replace('_', '-')}");
}
}
[HtmlTargetElement("i", Attributes = MaterialIconAttributeName)]
public class MaterialIconsTagHelper : TagHelper
{
private const string MaterialIconAttributeName = "material";
[HtmlAttributeName(MaterialIconAttributeName)]
public MaterialIcon MaterialIcon { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
{
output.Attributes.SetAttribute("class", "material-icons");
output.Content.SetContent(MaterialIcon.ToString());
}
}
public enum FontAwesomeIcon
{
_500px, accessible_icon, accusoft, address_book, address_card, adjust, adn, adversal, affiliatetheme, algolia, align_center, align_justify,
align_left, align_right, amazon, amazon_pay, ambulance, american_sign_language_interpreting, amilia, anchor, android, angellist, angle_double_down,
angle_double_left, angle_double_right, angle_double_up, angle_down, angle_left, angle_right, angle_up, angrycreative, angular, app_store,
app_store_ios, apper, apple, apple_pay, archive, arrow_alt_circle_down, arrow_alt_circle_left, arrow_alt_circle_right, arrow_alt_circle_up,
arrow_circle_down, arrow_circle_left, arrow_circle_right, arrow_circle_up, arrow_down, arrow_left, arrow_right, arrow_up, arrows_alt,
arrows_alt_h, arrows_alt_v, assistive_listening_systems, asterisk, asymmetrik, at, audible, audio_description, autoprefixer, avianex,
aviato, aws, backward, balance_scale, ban, bandcamp, barcode, bars, baseball_ball, basketball_ball, bath, battery_empty, battery_full,
battery_half, battery_quarter, battery_three_quarters, bed, beer, behance, behance_square, bell, bell_slash, bicycle, bimobject,
binoculars, birthday_cake, bitbucket, bitcoin, bity, black_tie, blackberry, blind, blogger, blogger_b, bluetooth, bluetooth_b, bold, bolt,
bomb, book, bookmark, bowling_ball, braille, briefcase, btc, bug, building, bullhorn, bullseye, buromobelexperte, bus, buysellads,
calculator, calendar, calendar_alt, calendar_check, calendar_minus, calendar_plus, calendar_times, camera, camera_retro, car, caret_down,
caret_left, caret_right, caret_square_down, caret_square_left, caret_square_right, caret_square_up, caret_up, cart_arrow_down, cart_plus,
cc_amazon_pay, cc_amex, cc_apple_pay, cc_diners_club, cc_discover, cc_jcb, cc_mastercard, cc_paypal, cc_stripe, cc_visa, centercode,
certificate, chart_area, chart_bar, chart_line, chart_pie, check, check_circle, check_square, chess, chess_bishop, chess_board, chess_king,
chess_knight, chess_pawn, chess_queen, chess_rook, chevron_circle_down, chevron_circle_left, chevron_circle_right, chevron_circle_up,
chevron_down, chevron_left, chevron_right, chevron_up, child, chrome, circle, circle_notch, clipboard, clock, clone, closed_captioning,
cloud, cloud_download_alt, cloud_upload_alt, cloudscale, cloudsmith, cloudversify, code, code_branch, codepen, codiepie, coffee, cog,
cogs, columns, comment, comment_alt, comments, compass, compress, connectdevelop, contao, copy, copyright, cpanel, creative_commons,
credit_card, crop, crosshairs, css3, css3_alt, cube, cubes, cut, cuttlefish, d_and_d, dashcube, database, deaf, delicious, deploydog,
deskpro, desktop, deviantart, digg, digital_ocean, discord, discourse, dochub, docker, dollar_sign, dot_circle, download, draft2digital,
dribbble, dribbble_square, dropbox, drupal, dyalog, earlybirds, edge, edit, eject, elementor, ellipsis_h, ellipsis_v, ember, empire,
envelope, envelope_open, envelope_square, envira, eraser, erlang, ethereum, etsy, euro_sign, exchange_alt, exclamation, exclamation_circle,
exclamation_triangle, expand, expand_arrows_alt, expeditedssl, external_link_alt, external_link_square_alt, eye, eye_dropper, eye_slash,
facebook, facebook_f, facebook_messenger, facebook_square, fast_backward, fast_forward, fax, female, fighter_jet, file, file_alt, file_archive,
file_audio, file_code, file_excel, file_image, file_pdf, file_powerpoint, file_video, file_word, film, filter, fire, fire_extinguisher,
firefox, first_order, firstdraft, flag, flag_checkered, flask, flickr, flipboard, fly, folder, folder_open, font, font_awesome,
font_awesome_alt, font_awesome_flag, fonticons, fonticons_fi, football_ball, fort_awesome, fort_awesome_alt, forumbee, forward, foursquare,
free_code_camp, freebsd, frown, futbol, gamepad, gavel, gem, genderless, get_pocket, gg, gg_circle, gift, git, git_square, github, github_alt,
github_square, gitkraken, gitlab, gitter, glass_martini, glide, glide_g, globe, gofore, golf_ball, goodreads, goodreads_g, google, google_drive,
google_play, google_plus, google_plus_g, google_plus_square, google_wallet, graduation_cap, gratipay, grav, gripfire, grunt, gulp,
h_square, hacker_news, hacker_news_square, hand_lizard, hand_paper, hand_peace, hand_point_down, hand_point_left, hand_point_right,
hand_point_up, hand_pointer, hand_rock, hand_scissors, hand_spock, handshake, hashtag, hdd, heading, headphones, heart, heartbeat, hips,
hire_a_helper, history, hockey_puck, home, hooli, hospital, hotjar, hourglass, hourglass_end, hourglass_half, hourglass_start, houzz, html5,
hubspot, i_cursor, id_badge, id_card, image, images, imdb, inbox, indent, industry, info, info_circle, instagram, internet_explorer,
ioxhost, italic, itunes, itunes_note, jenkins, joget, joomla, js, js_square, jsfiddle, key, keyboard, keycdn, kickstarter, kickstarter_k,
korvue, language, laptop, laravel, lastfm, lastfm_square, leaf, leanpub, lemon, less, level_down_alt, level_up_alt, life_ring, lightbulb,
line, link, linkedin, linkedin_in, linode, linux, lira_sign, list, list_alt, list_ol, list_ul, location_arrow, @lock, lock_open,
long_arrow_alt_down, long_arrow_alt_left, long_arrow_alt_right, long_arrow_alt_up, low_vision, lyft, magento, magic, magnet, male,
map, map_marker, map_marker_alt, map_pin, map_signs, mars, mars_double, mars_stroke, mars_stroke_h, mars_stroke_v, maxcdn, medapps,
medium, medium_m, medkit, medrt, meetup, meh, mercury, microchip, microphone, microphone_slash, microsoft, minus, minus_circle,
minus_square, mix, mixcloud, mizuni, mobile, mobile_alt, modx, monero, money_bill_alt, moon, motorcycle, mouse_pointer, music, napster,
neuter, newspaper, nintendo_switch, node, node_js, npm, ns8, nutritionix, object_group, object_ungroup, odnoklassniki, odnoklassniki_square,
opencart, openid, opera, optin_monster, osi, outdent, page4, pagelines, paint_brush, palfed, paper_plane, paperclip, paragraph, paste, patreon,
pause, pause_circle, paw, paypal, pen_square, pencil_alt, percent, periscope, phabricator, phoenix_framework, phone, phone_square,
phone_volume, php, pied_piper, pied_piper_alt, pied_piper_pp, pinterest, pinterest_p, pinterest_square, plane, play, play_circle,
playstation, plug, plus, plus_circle, plus_square, podcast, pound_sign, power_off, print, product_hunt, pushed, puzzle_piece, python,
qq, qrcode, question, question_circle, quidditch, quinscape, quora, quote_left, quote_right, random, ravelry, react, rebel, recycle,
red_river, reddit, reddit_alien, reddit_square, redo, redo_alt, registered, rendact, renren, reply, reply_all, replyd, resolving,
retweet, road, rocket, rocketchat, rockrms, rss, rss_square, ruble_sign, rupee_sign, safari, sass, save, schlix, scribd, search,
search_minus, search_plus, searchengin, sellcast, sellsy, server, servicestack, share, share_alt, share_alt_square, share_square,
shekel_sign, shield_alt, ship, shirtsinbulk, shopping_bag, shopping_basket, shopping_cart, shower, sign_in_alt, sign_language,
sign_out_alt, signal, simplybuilt, sistrix, sitemap, skyatlas, skype, slack, slack_hash, sliders_h, slideshare, smile, snapchat,
snapchat_ghost, snapchat_square, snowflake, sort, sort_alpha_down, sort_alpha_up, sort_amount_down, sort_amount_up, sort_down,
sort_numeric_down, sort_numeric_up, sort_up, soundcloud, space_shuttle, speakap, spinner, spotify, square, square_full,
stack_exchange, stack_overflow, star, star_half, staylinked, steam, steam_square, steam_symbol, step_backward, step_forward,
stethoscope, sticker_mule, sticky_note, stop, stop_circle, stopwatch, strava, street_view, strikethrough, stripe, stripe_s,
studiovinari, stumbleupon, stumbleupon_circle, subscript, subway, suitcase, sun, superpowers, superscript, supple, sync,
sync_alt, table, table_tennis, tablet, tablet_alt, tachometer_alt, tag, tags, tasks, taxi, telegram, telegram_plane, tencent_weibo,
terminal, text_height, text_width, th, th_large, th_list, themeisle, thermometer_empty, thermometer_full, thermometer_half, thermometer_quarter,
thermometer_three_quarters, thumbs_down, thumbs_up, thumbtack, ticket_alt, times, times_circle, tint, toggle_off, toggle_on,
trademark, train, transgender, transgender_alt, trash, trash_alt, tree, trello, tripadvisor, trophy, truck, tty, tumblr, tumblr_square,
tv, twitch, twitter, twitter_square, typo3, uber, uikit, umbrella, underline, undo, undo_alt, uniregistry, universal_access, university,
unlink, unlock, unlock_alt, untappd, upload, usb, user, user_circle, user_md, user_plus, user_secret, user_times, users, ussunnah, utensil_spoon,
utensils, vaadin, venus, venus_double, venus_mars, viacoin, viadeo, viadeo_square, viber, video, vimeo, vimeo_square, vimeo_v, vine, vk,
vnv, volleyball_ball, volume_down, volume_off, volume_up, vuejs, weibo, weixin, whatsapp, whatsapp_square, wheelchair, whmcs, wifi,
wikipedia_w, window_close, window_maximize, window_minimize, window_restore, windows, won_sign, wordpress, wordpress_simple, wpbeginner,
wpexplorer, wpforms, wrench, xbox, xing, xing_square, y_combinator, yahoo, yandex, yandex_international, yelp, yen_sign, yoast, youtube, youtube_square,
}
public enum MaterialIcon
{
_3d_rotation,
ac_unit, access_alarm, access_alarms, access_time, accessibility, accessible, account_balance, account_balance_wallet,
account_box, account_circle, adb, add, add_a_photo, add_alarm, add_alert, add_box, add_circle, add_circle_outline, add_location,
add_shopping_cart, add_to_photos, add_to_queue, adjust, airline_seat_flat, airline_seat_flat_angled, airline_seat_individual_suite,
airline_seat_legroom_extra, airline_seat_legroom_normal, airline_seat_legroom_reduced, airline_seat_recline_extra,
airline_seat_recline_normal, airplanemode_active, airplanemode_inactive, airplay, airport_shuttle, alarm, alarm_add,
alarm_off, alarm_on, album, all_inclusive, all_out, android, announcement, apps, archive, arrow_back, arrow_downward,
arrow_drop_down, arrow_drop_down_circle, arrow_drop_up, arrow_forward, arrow_upward, art_track, aspect_ratio, assessment,
assignment, assignment_ind, assignment_late, assignment_return, assignment_returned, assignment_turned_in, assistant, assistant_photo,
attach_file, attach_money, attachment, audiotrack, autorenew, av_timer, backspace, backup, battery_alert, battery_charging_full,
battery_full, battery_std, battery_unknown, beach_access, beenhere, block, bluetooth, bluetooth_audio, bluetooth_connected,
bluetooth_disabled, bluetooth_searching, blur_circular, blur_linear, blur_off, blur_on, book, bookmark, bookmark_border, border_all,
border_bottom, border_clear, border_color, border_horizontal, border_inner, border_left, border_outer, border_right, border_style,
border_top, border_vertical, branding_watermark, brightness_1, brightness_2, brightness_3, brightness_4, brightness_5, brightness_6,
brightness_7, brightness_auto, brightness_high, brightness_low, brightness_medium, broken_image, brush, bubble_chart, bug_report,
build, burst_mode, business, business_center, cached, cake, call, call_end, call_made, call_merge, call_missed, call_missed_outgoing,
call_received, call_split, call_to_action, camera, camera_alt, camera_enhance, camera_front, camera_rear, camera_roll, cancel,
card_giftcard, card_membership, card_travel, casino, cast, cast_connected, center_focus_strong, center_focus_weak, change_history,
chat, chat_bubble, chat_bubble_outline, check, check_box, check_box_outline_blank, check_circle, chevron_left, chevron_right,
child_care, child_friendly, chrome_reader_mode, @class, clear, clear_all, close, closed_caption, cloud, cloud_circle, cloud_done,
cloud_download, cloud_off, cloud_queue, cloud_upload, code, collections, collections_bookmark, color_lens, colorize, comment,
compare, compare_arrows, computer, confirmation_number, contact_mail, contact_phone, contacts, content_copy, content_cut,
content_paste, control_point, control_point_duplicate, copyright, create, create_new_folder, credit_card, crop, crop_16_9,
crop_3_2, crop_5_4, crop_7_5, crop_din, crop_free, crop_landscape, crop_original, crop_portrait, crop_rotate, crop_square, dashboard,
data_usage, date_range, dehaze, delete, delete_forever, delete_sweep, description, desktop_mac, desktop_windows, details,
developer_board, developer_mode, device_hub, devices, devices_other, dialer_sip, dialpad, directions, directions_bike, directions_boat,
directions_bus, directions_car, directions_railway, directions_run, directions_subway, directions_transit, directions_walk, disc_full,
dns, do_not_disturb, do_not_disturb_alt, do_not_disturb_off, do_not_disturb_on, dock, domain, done, done_all, donut_large, donut_small,
drafts, drag_handle, drive_eta, dvr, edit, edit_location, eject, email, enhanced_encryption, equalizer, error, error_outline, euro_symbol,
ev_station, @event, event_available, event_busy, event_note, event_seat, exit_to_app, expand_less, expand_more, @explicit, explore,
exposure, exposure_neg_1, exposure_neg_2, exposure_plus_1, exposure_plus_2, exposure_zero, extension, face, fast_forward, fast_rewind,
favorite, favorite_border, featured_play_list, featured_video, feedback, fiber_dvr, fiber_manual_record, fiber_new, fiber_pin,
fiber_smart_record, file_download, file_upload, filter, filter_1, filter_2, filter_3, filter_4, filter_5, filter_6, filter_7,
filter_8, filter_9, filter_9_plus, filter_b_and_w, filter_center_focus, filter_drama, filter_frames, filter_hdr, filter_list,
filter_none, filter_tilt_shift, filter_vintage, find_in_page, find_replace, fingerprint, first_page, fitness_center, flag, flare,
flash_auto, flash_off, flash_on, flight, flight_land, flight_takeoff, flip, flip_to_back, flip_to_front, folder, folder_open,
folder_shared, folder_special, font_download, format_align_center, format_align_justify, format_align_left, format_align_right,
format_bold, format_clear, format_color_fill, format_color_reset, format_color_text, format_indent_decrease, format_indent_increase,
format_italic, format_line_spacing, format_list_bulleted, format_list_numbered, format_paint, format_quote, format_shapes, format_size,
format_strikethrough, format_textdirection_l_to_r, format_textdirection_r_to_l, format_underlined, forum, forward, forward_10, forward_30,
forward_5, free_breakfast, fullscreen, fullscreen_exit, functions, g_translate, gamepad, games, gavel, gesture, get_app, gif, golf_course,
gps_fixed, gps_not_fixed, gps_off, grade, gradient, grain, graphic_eq, grid_off, grid_on, group, group_add, group_work, hd, hdr_off, hdr_on,
hdr_strong, hdr_weak, headset, headset_mic, healing, hearing, help, help_outline, high_quality, highlight, highlight_off, history,
home, hot_tub, hotel, hourglass_empty, hourglass_full, http, https, image, image_aspect_ratio, import_contacts, import_export,
important_devices, inbox, indeterminate_check_box, info, info_outline, input, insert_chart, insert_comment, insert_drive_file, insert_emoticon,
insert_invitation, insert_link, insert_photo, invert_colors, invert_colors_off, iso, keyboard, keyboard_arrow_down, keyboard_arrow_left,
keyboard_arrow_right, keyboard_arrow_up, keyboard_backspace, keyboard_capslock, keyboard_hide, keyboard_return, keyboard_tab, keyboard_voice,
kitchen, label, label_outline, landscape, language, laptop, laptop_chromebook, laptop_mac, laptop_windows, last_page, launch, layers,
layers_clear, leak_add, leak_remove, lens, library_add, library_books, library_music, lightbulb_outline, line_style, line_weight, linear_scale,
link, linked_camera, list, live_help, live_tv, local_activity, local_airport, local_atm, local_bar, local_cafe, local_car_wash,
local_convenience_store, local_dining, local_drink, local_florist, local_gas_station, local_grocery_store, local_hospital, local_hotel, local_laundry_service,
local_library, local_mall, local_movies, local_offer, local_parking, local_pharmacy, local_phone, local_pizza, local_play, local_post_office, local_printshop,
local_see, local_shipping, local_taxi, location_city, location_disabled, location_off, location_on, location_searching, @lock, lock_open, lock_outline,
looks, looks_3, looks_4, looks_5, looks_6, looks_one, looks_two, loop, loupe, low_priority, loyalty, mail, mail_outline, map, markunread,
markunread_mailbox, memory, menu, merge_type, message, mic, mic_none, mic_off, mms, mode_comment, mode_edit, monetization_on, money_off,
monochrome_photos, mood, mood_bad, more, more_horiz, more_vert, motorcycle, mouse, move_to_inbox, movie, movie_creation, movie_filter,
multiline_chart, music_note, music_video, my_location, nature, nature_people, navigate_before, navigate_next, navigation, near_me, network_cell,
network_check, network_locked, network_wifi, new_releases, next_week, nfc, no_encryption, no_sim, not_interested, note, note_add, notifications,
notifications_active, notifications_none, notifications_off, notifications_paused, offline_pin, ondemand_video, opacity, open_in_browser, open_in_new,
open_with, pages, pageview, palette, pan_tool, panorama, panorama_fish_eye, panorama_horizontal, panorama_vertical, panorama_wide_angle, party_mode,
pause, pause_circle_filled, pause_circle_outline, payment, people, people_outline, perm_camera_mic, perm_contact_calendar, perm_data_setting,
perm_device_information, perm_identity, perm_media, perm_phone_msg, perm_scan_wifi, person, person_add, person_outline, person_pin, person_pin_circle,
personal_video, pets, phone, phone_android, phone_bluetooth_speaker, phone_forwarded, phone_in_talk, phone_iphone, phone_locked, phone_missed,
phone_paused, phonelink, phonelink_erase, phonelink_lock, phonelink_off, phonelink_ring, phonelink_setup, photo, photo_album, photo_camera, photo_filter,
photo_library, photo_size_select_actual, photo_size_select_large, photo_size_select_small, picture_as_pdf, picture_in_picture, picture_in_picture_alt,
pie_chart, pie_chart_outlined, pin_drop, place, play_arrow, play_circle_filled, play_circle_outline, play_for_work, playlist_add, playlist_add_check,
playlist_play, plus_one, poll, polymer, pool, portable_wifi_off, portrait, power, power_input, power_settings_new, pregnant_woman, present_to_all,
print, priority_high, @public, publish, query_builder, question_answer, queue, queue_music, queue_play_next, radio, radio_button_checked, radio_button_unchecked,
rate_review, receipt, recent_actors, record_voice_over, redeem, redo, refresh, remove, remove_circle, remove_circle_outline, remove_from_queue, remove_red_eye,
remove_shopping_cart, reorder, repeat, repeat_one, replay, replay_10, replay_30, replay_5, reply, reply_all, report, report_problem, restaurant, restaurant_menu,
restore, restore_page, ring_volume, room, room_service, rotate_90_degrees_ccw, rotate_left, rotate_right, rounded_corner, router, rowing, rss_feed, rv_hookup,
satellite, save, scanner, schedule, school, screen_lock_landscape, screen_lock_portrait, screen_lock_rotation, screen_rotation, screen_share, sd_card, sd_storage,
search, security, select_all, send, sentiment_dissatisfied, sentiment_neutral, sentiment_satisfied, sentiment_very_dissatisfied, sentiment_very_satisfied, settings,
settings_applications, settings_backup_restore, settings_bluetooth, settings_brightness, settings_cell, settings_ethernet, settings_input_antenna,
settings_input_component, settings_input_composite, settings_input_hdmi, settings_input_svideo, settings_overscan, settings_phone, settings_power,
settings_remote, settings_system_daydream, settings_voice, share, shop, shop_two, shopping_basket, shopping_cart, short_text, show_chart, shuffle,
signal_cellular_4_bar, signal_cellular_connected_no_internet_4_bar, signal_cellular_no_sim, signal_cellular_null, signal_cellular_off, signal_wifi_4_bar,
signal_wifi_4_bar_lock, signal_wifi_off, sim_card, sim_card_alert, skip_next, skip_previous, slideshow, slow_motion_video, smartphone, smoke_free, smoking_rooms,
sms, sms_failed, snooze, sort, sort_by_alpha, spa, space_bar, speaker, speaker_group, speaker_notes, speaker_notes_off, speaker_phone, spellcheck, star,
star_border, star_half, stars, stay_current_landscape, stay_current_portrait, stay_primary_landscape, stay_primary_portrait, stop, stop_screen_share, storage,
store, store_mall_directory, straighten, streetview, strikethrough_s, style, subdirectory_arrow_left, subdirectory_arrow_right, subject, subscriptions, subtitles,
subway, supervisor_account, surround_sound, swap_calls, swap_horiz, swap_vert, swap_vertical_circle, switch_camera, switch_video, sync, sync_disabled, sync_problem,
system_update, system_update_alt, tab, tab_unselected, tablet, tablet_android, tablet_mac, tag_faces, tap_and_play, terrain, text_fields, text_format, textsms, texture,
theaters, thumb_down, thumb_up, thumbs_up_down, time_to_leave, timelapse, timeline, timer, timer_10, timer_3, timer_off, title, toc, today, toll, tonality,
touch_app, toys, track_changes, traffic, train, tram, transfer_within_a_station, transform, translate, trending_down, trending_flat, trending_up, tune, turned_in,
turned_in_not, tv, unarchive, undo, unfold_less, unfold_more, update, usb, verified_user, vertical_align_bottom, vertical_align_center, vertical_align_top,
vibration, video_call, video_label, video_library, videocam, videocam_off, videogame_asset, view_agenda, view_array, view_carousel, view_column, view_comfy,
view_compact, view_day, view_headline, view_list, view_module, view_quilt, view_stream, view_week, vignette, visibility, visibility_off, voice_chat, voicemail,
volume_down, volume_mute, volume_off, volume_up, vpn_key, vpn_lock, wallpaper, warning, watch, watch_later, wb_auto, wb_cloudy, wb_incandescent, wb_iridescent,
wb_sunny, wc, web, web_asset, weekend, whatshot, widgets, wifi, wifi_lock,
wifi_tethering, work, wrap_text, youtube_searched_for, zoom_in, zoom_out, zoom_out_map
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment