> 現コードだとcss <-> jsな感じだけどdata属性版だとcss <-> html <-> jsみたいな印象を受ける

これに関しては、意図としては
css <-> HTML
js <-> HTML
という関係が理想