Passing data to includes - overrides & defaults
There is no reason why your code should work, because any variable declared outside of your include file in the with {...} block will be immediately overwritten by your variable definition (#set) in the beginning of your included file.

What you need to do in your include is to check, if the variable was passed in from the outside, and if not, set it to a default value.

So I guess the best way could be this in your includes/social.twig file:

{% set padding, size, color, hover = padding ?? '2', size ?? '4', color ?? 'pink', hover ?? 'black' %}

&lt;ul&gt;
  &lt;li class="px-{{ padding }} text-{{ size }}"&gt;
    &lt;a class="text-{{ color }} hover:text-{{ hover }}" href="{{ contactDetails.link }}"&gt;
      &lt;i class="fab fa-link"&gt;&lt;/i&gt;
    &lt;/a&gt;
  &lt;/li&gt;
&lt;/ul&gt;


The ?? used here is called the null-coalescing operator. It will check if the variable before the ?? is defined (which it is if provided from the outside) and in case it's not not, fall back to the value after it. Have a look here, if you do not know it: https://straightupcraft.com/events/twigs-null-coalescing-operator