0
Skip to Content
ALLSVART
Artists
Studio
Info
Pre-Session Instructions
Aftercare Instructions
FAQ
Contact
ALLSVART
Request Appointment
Request Appointment
ALLSVART
Artists
Studio
Info
Pre-Session Instructions
Aftercare Instructions
FAQ
Contact
ALLSVART
ALLSVART
Artists
Studio
Folder: Info
Back
Pre-Session Instructions
Aftercare Instructions
FAQ
Contact
Request Appointment

Contact

333 C Street, Suite 210
San Diego, CA 92101

Mon-Sun 11-7pm
By Appointment Only

book@allsvart.com
(619) 757-0616

Follow on Instagram
Request Appointment
 

Ready to bring your tattoo vision to life? Schedule an appointment with any of our available artists at your convenience.

Subscribe

Sign up to receive updates about guest artists and other studio news.

Thank you!

BOOK@ALLSVART.COM

ALLSVART

Address: 333 C Street, Suite 210, San Diego, CA 92101
Phone Number: (619) 757-0616 (Text/Call)
Business Hours: Mon-Sun 11-7pm By Appointment Only

Privacy Policy Terms of Service

$( ( ) => { /* begin header menu mobile outline License : < https://tinyurl.com/s872fb68 > Version : 0.3.0 SS Version : 7.1 Fluid Engine Compatible : Not Applicable Dependencies : jQuery By : Thomas Creedon < http://www.tomsWeb.consulting/ > no user serviceable parts below */ const codeKey = 'twc-hmmo'; const version = '0.3.0'; const s = `Header Menu Mobile Outline v${ version }, ` + 'License < https://tinyurl.com/s872fb68 >, ' + 'Tom\'s Web Consulting < http://www.tomsWeb.consulting >'; console.log ( s ); const build = ( ) => { const rootSelector = '[data-folder="root"]'; const $menu = $( '
    ' ); let selector = '.header-menu-nav-item a'; $( selector, $folder ).each ( function ( ) { let $this = $( this ); const dataFolderId = $this.attr ( 'data-folder-id' ); const isFolder = dataFolderId === undefined ? false : true; const isUserAccounts = $this.hasClass ( 'user-accounts-text-link' ); if ( isUserAccounts ) $this = $this.parent ( ); const $li = $( '
  • ' ) .append ( $this ); if ( isFolder ) { const $ul = $( '
      ' ); selector = `[data-folder="${ dataFolderId }"] ` + '.header-menu-nav-item:not( .header-menu-controls ) a'; $( selector, $navigation ).each ( function ( ) { const $this = $( this ); $( '
    • ' ) .append ( $this ) .appendTo ( $ul ); } ); $li.append ( $ul ); } $li.appendTo ( $menu ); } ); $navigation .find ( `[data-folder]:not( ${ rootSelector } )` ) .remove ( ) .end ( ) .find ( '.header-menu-nav-folder-content' ) .replaceWith ( $menu ); // begin is expandable let isExpandable = $navigation .css ( `--${ codeKey }-expandable` ) isExpandable = isExpandable == 'true' ? true : false; if ( ! isExpandable ) return; // bail of not collapsable // end is collapsable selector = '[data-folder-id]'; $navigation .attr ( `data-${ codeKey }-expandable`, '' ); $( selector, $menu ).on ( 'click', function ( event ) { event.preventDefault ( ); const clss = `${ codeKey }-open`; $( this ).toggleClass ( clss ); } ); }; const classActive = 'header-menu-nav-folder--active'; let selector = '.header-menu-nav-list'; const $navigation = $( selector ) .addClass ( `${ codeKey }` ); selector = '.header-menu-nav-folder[ data-folder="root" ]'; const $folder = $( selector, $navigation ); const isActive = $folder .hasClass ( classActive ); if ( isActive ) build ( ); else { const callback = ( mutations ) => { $.each ( mutations, function ( ) { // continue if not class if ( this.attributeName != 'class' ) return true; $element = $( this.target ); b = $element.hasClass ( classActive ); if ( ! b ) return true; // continue if no active class observer.disconnect ( ); build ( ); return false; } ); }; // end callback const config = { attributes : true }; const observer = new MutationObserver ( callback ); // start listening for changes in element const element = $folder.get ( 0 ); observer.observe ( element, config ); } } );