Uniform not sending all data

Hi all.

i’Msing the uniform plugin for a simple contact form, and can’t get any data from my input fields sent in the email, only in the textarea. I’ve included the controller and html below, and an example from a resulting email, where you can see the textarea (message) data is sent but nothing else. (I’m also confused why firstName is no longer camelcase and change to FirstName as cannot see even a css transform on here).

Really would appreciate some help - thanks!

CONTROLLER:

<?php

use Uniform\Form;

return function ($kirby) {
   $form = new Form([
      'firstName' => [],
      'lastName' => [],
      'email' => [],
      'postCode' => [],
      'company' => [],
      'message' => [],
   ]);

   if ($kirby->request()->is('POST')) {
      $form->emailAction([
         'to' => 'dylan@email.co.uk',
         'from' => 'dylan@email.co.uk',
      ]);
   }

   return compact('form');
};

CONTACT FORM

<form action="<?php echo $page->url() ?>" method="POST" id="contact">
	<input type="text" required id="firstName" aria-describedby="firstNameHelp" value="<?php echo $form->old('firstName'); ?>" placeholder="First Name">
	<input type="text" required  id="lastName" aria-describedby="lastNameHelp" value="<?php echo $form->old('lastName'); ?>" placeholder="Last Name">
	<input type="text" id="company" aria-describedby="company" value="<?php echo $form->old('company'); ?>" placeholder="Company">
	<input type="email" required  id="email" aria-describedby="emailHelp" value="<?php echo $form->old('email'); ?>" placeholder="Email Address">
	<input type="number" required  id="number" aria-describedby="numberHelp" value="<?php echo $form->old('number'); ?>" placeholder="Phone Number">
	<input type="text" required  id="postCode" aria-describedby="postCodeHelp" value="<?php echo $form->old('postCode'); ?>" placeholder="Post Code">
	<textarea rows="5" name="message" placeholder="Your Message"><?php echo $form->old('message'); ?></textarea>
	<input type="checkbox" required class="form-check-input" id="exampleCheck1">
	<label class="form-check-label pl-2" for="exampleCheck1">By sending this form I agree to this website’s privacy policy.</label>
	<?php echo csrf_field(); ?>
	<?php echo honeypot_field(); ?>
	<input type="submit" value="Send">
</form>

RESULTING EMAIL:

FirstName:

LastName:

PostCode:

company:

Message: This is a test. Please ignore

You forgot to add the name attribute to all but the textarea fields.